转自《https安全链接的配置教程:startSSl免费证书申请与nginx的https支持配置》
一、什么是 SSL 证书,什么是 HTTPS 网站?
SSL证书是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本。SSL证书通过在客户端浏览器和Web服务器之间建立一条SSL安全通道(Secure socket layer(SSL)安全协议是由Netscape Communication公司设计开发。该安全协议主要用来提供对用户和服务器的认证;对传送的数据进行加密和隐藏;确保数据在传送中不被改变,即数据的完整性,现已成为该领域中全球化的标准。由于SSL技术已建立到所有主要的浏览器和WEB服务器程序中,因此,仅需安装服务器证书就可以激活该功能了)。即通过它可以激活SSL协议,实现数据信息在客户端和服务器之间的加密传输,可以防止数据信息的泄露。保证了双方传递信息的安全性,而且用户可以通过服务器证书验证他所访问的网站是否是真实可靠。
二、什么网站需要 SSL 证书?
就我遇到过的网站,配置了认证的证书的,大概有这么几类:
1、购物交易类网站
这个就不用说了,支付宝、财付通等肯定会加密以保护你的密码安全。
2、注册类站点
有些大站点,注册会员或者登陆的时候,会专门通过SSL通道,来保护你的密码安全。比如百度会员中心登录的数据传输通道
三、免费证书startssl申请
startSSL官方地址https://www.startssl.com/,稍微介绍下startSSL:它是一个证书颁发机构,支持免费的ssl证书颁发,相比于只是为了学习ssl安全链接的程序猿们不再需要花上一年好几K的证书费用,当然你也可以在startSSL花上$200左右购买一个付费的高等级ssl证书(毕竟人家给你免费的浏览器可识别的ssl证书也只会有一年而已);startSSL的ssl证书从一开始就被一些具有开源背景的firefox、chrome等支持,目前已经测试的支持的浏览器如下:ie、firefox、chrome、safari,据说opera还不支持,就连startssl官方站都无法支持,不知为何~~~~原先startssl是不支持ie的,但是不知startssl官方是怎么搞定微软的,现在ie也支持了startssl的ssl证书。废话少说,上图说注册startssl获取一年免费ssl证书的步骤:
3.1 startssl注册
进入startssl官方站,点击右上角那把小锁,上图,打开页面如下:
点击Sign-up进行注册,打开页面如下:
填写就不多说了,第一栏是名字,使用英文更好一点,第二栏是地址,最好精确到街道以及门牌号,第三列是邮政编码以及所在城市的简称(咱搞了个所在城市的拼音,还是通过了嘛,哈哈);第四列是所在国家,默认china无需更改,第五列选择所在省份,最好选择跟你的ip地址所在地是一致的;第六列是你的手机号或者座机号,这年头手机泛滥,填个自己的手机号得到一个免费的一年的ssl证书也无可厚非;第七列需要注意下方的说明,startssl不支持qq.com的邮箱,也就是说你填写的电子邮箱的时候不要用qq邮箱,国内的经过测试163、sina、yahoo.cn均可,最好使用gmail。
填写准确,点解continue(继续)来到邮箱验证,打开刚刚填写的邮箱,有一封来至starssl的注册邮件,里面有验证码:如下,邮件正文中的第二行”code is ****“的,那个is后面的就是这个验证码,复制,填入到上图中,点击continue继续,注册即告成功(下图2),接下来等待startssl的人工审核,审核通过后会发一封邮件给你,这里用我已经注册成功的邮件为例说明:
3.2 登录账号的激活
上述startssl人工审核通过后发给你的邮件(如下图1),打开后有一个有个链接,复制到浏览器地址栏回车打开的地址就进行账号的证书<非你申请的ssl证书,这里只是一个账户登录证书,就跟国内某些银行的登录可以使用证书登录一样>安装,startssl不通过账号密码方式登录,而只支持通过他们自己的证书方式登录,所以这里打开的页面实际上是一个你的账号证书的安装页面(一个连接地址)以及一个验证码,这里最好使用firefox或者chrome,有时候ie会安装失败,一旦失败就意味着你得重新注册.
大致说下操作:复制邮件(上图)第四行的url地址,粘贴到firefox地址栏中回车,打开的页面中有个输入框,输入上图邮件中第五列中的process is后面的字符串,点击继续出现如下页面,如下图,选择默认的高级即可,点击continue继续
继续后来到安装你的账号证书的页面,点击install,如下图:
经过一会(一般不超过3分钟)就可以出现如下界面:说明你的账号证书已经安装成功啦~~~~备份一下这个证书咯,以后就可以用这个证书到别处登录了,如果不慎丢失这个证书,以后就只能重新注册咯~~~~
注册成功后,点击finish来到控制面板,如下图:
3.3 添加并验证域名所有者信息
添加你的域名,点击上图右侧那个菜单,也就是”Validations Wizard“咯,打开的页面如下:选择域名验证,也就是 Domain Name XX咯,如下图,自动进入下一步填写域名
来到填写域名的位置,如下图:
输入你的域名,选择后缀,继续打开验证方式选择,如下图,选择你的域名注册时留下的邮箱地址即可,当然如果你的域名下有相应的邮箱地址也是可以的(如果挂在QQ域名邮箱下就算了,你还是老老实实的选择注册域名时填写的邮箱吧~~~哈哈).....点击continue继续下一步
打开刚才选择的邮箱,会收到一封验证码邮件,如下,复制验证码,输入到框框内点击继续(不慎,没有留下截图,不过还好,也就是一个输入验证码的框框),来到下图2,点击finish即可完成域名的所有者认证:
3.4 激动人心的时刻来了,申请免费一年的ssl证书
上一步finish后又来到控制面板,如下图:点击中间那个菜单,也就是”Certificates Wizard“咯~~~~
打开的页面如下:选择web server SSL/TSl Certificate 也就是传说中的支持https访问的ssl证书,点击continue继续..
生成公匙,也就是https中的.key文件,如下图:
输入一个长度合适的密码并重复<第二栏重复密码>,最好超过16位,而且字母、数字混杂(请记住这个密码,稍后还会用,这里就菜鸟的叫法把这个密码叫做 证书密码 ,以后提到证书密码,就是指这个密码咯,以后不再赘述),第三栏选择加密强度以及第四栏的加密算法,这里全部选默认。点击continue继续--------------<ps:这里生成的也就是一个公用密码文本,如果你懂得使用openssl自己生成,这里就可以选择skip跳过,当然既然按咱这个教程,就老老实实输入一个密码并且重复一次,然后continue,多 保险咧~~~哈哈>,点击后会有一个弹窗,确认即可(好像是左边那个按钮,哈哈)
来到如下页面:也就是刚才用密码生成的一个key文件, 请复制框框内的文本<安全起见,告诉你怎么整,先鼠标点入框框内,然后全选,什么?不知道全选?Ctrl+a啊~,再复制,什么?不知道复制?Ctrl+c啊;当然你也可以Ctrl+x剪切掉> ,然后将复制的内容是用文本编辑器粘贴<记事本会用吧~~~>,保存文件名为ssl.key<一定要这个破名字吗?不一定啊,但是为了后面的nginx的配置好讲解一点,咱就忍忍吧~~~>,点击continue继续
来到如下页面:选择已经认证过的域名啦~~~~~如下:直接continue继续
来到,你需要为你的域名下的哪个主机添加https访问的位置,这里就看你自己的配置啦!~这列示例填写一个www主机,也就是在框框内填入www啦~~~~点击continue继续.....
来到如下界面,没啥好说的,直接continue继续......
可能需要等待几十秒,startSSl正在后台生产crt文件呢~~你总得让人家的服务器有个喘息的机会吧~~~~等来的就是如下的页面<ps:以前startssl在此步骤后需要人工审核后再给你发送邮件以及code进行证书提取,但是现在好像直接是一气呵成了,反正我这里的示例是一气呵成,直接就将crt证书给你生成了~~~~>
复制这个框框里的文本,还是用个文本编辑器粘贴保存为ssl.crt文件<操作方法跟前面保存那个破名字叫ssl.key的一样,就不啰嗦了>......
以上的的所有步骤不过是为了得到两个破东西,一个是ssl.key<这个如果你懂得openssl,自己就可以搞定>,一个是ssl.crt文件,这个ssl.crt文件才是王道,才是以上废了这么多精力所得到的ssl证书文件。好了,接着说nginx下的配置使你的服务器支持https的访问。
四、nginx的配置(linux平台)
为了便于说明,咱来个约定:
约定:假设你的nginx安装在/usr/local/server/nginx下,配置文件默认,也就是/usr/local/server/nginx/conf下。同时假设你的服务器已经支持openssl
假设在你的/usr/local/server/nginx/conf下有个文件夹叫ssl,也就是/usr/local/server/nginx/conf/ssl咯
4.1 上传那两个破文件也就是ssl.key和ssl.crt文件咯---可以用一个叫SSH Secure Shell的玩意中的Secure File Transfer Client来上传;上传这个两个文件到/usr/local/server/nginx/conf/ssl下
其实,人家startssl有个教程 地址:https://www.startssl.com/?app=42,但是还是啰嗦的讲解一下~~
4.2 既然是ssl关键文件,那就保护一下啦~~ 修改ssl.key文件的属性即可,什么不会?
putty远程登录服务器,最好是root账户
进入/usr/local/server/nginx/conf/ssl目录,什么?不会?
shell代码:cd /usr/local/server/nginx/conf/ssl
更改ssl.key文件属性
shell代码:chmod 600 ssl.key
4.3 安装ssl.key
通过openssl安装导入,以后启动nginx时就不必每次都需要输入那个破“证书密码”了,什么?哪里来的“证书密码”,看前面申请这个破ssl.key时的约定吧!openssl导入证书公用密码<实际上人家叫公匙啦~~~>,还是在/usr/local/server/nginx/conf/ssl目录下:
shell代码:openssl rsa -in ssl.key -out /usr/local/server/nginx/conf/ssl_ca.key
4.4 获取startssl根证书并合并你自己的证书
获取startssl官方的根证书<暂且就这么叫吧~~~其实人家不叫这个的,没看到是个pem文件嘛~~>,wget获取
shell代码:
wget http://www.startssl.com/certs/ca.pem
wget http://www.startssl.com/certs/sub.class1.server.ca.pem
合并:
shell代码:cat ssl.crt sub.class1.server.ca.pem ca.pem > /usr/local/server/nginx/conf/ssl_ca.crt
ps:处理下生成的这个ssl_ca.crt文件,不然以后就不是坑爹了,而是坑祖宗了·~~~
也就是会出现如下错误:
处理方法很简单,直接vi /usr/local/server/nginx/conf/ssl_ca.crt
找到如下图的位置:
在绿色那个地方回车一下然后保存即可。什么回车了无效?vi的使用就不告诉你了,这是秘密~~~~
4.5 配置nginx支持https访问
配置nginx的配置文件,默认是vi /usr/local/server/nginx/conf/nginx.conf 这里确实是不好说,直接上图:看不清楚就点小图看大图咯~~~
---
转载请注明本文标题和链接:《https安全链接的配置教程:startSSl免费证书申请与nginx的https支持配置》
转自《https安全链接的配置教程:startSSl免费证书申请与nginx的https支持配置》的更多相关文章
- SSL免费证书申请以及nginx配置https流程记录
设置https需要ssl 证书,可以通过FreeSSL[https://freessl.org/]申请. 流程记录: 输入域名,如 http://www.youdias.xin 选择品牌,如Let's ...
- HTTPS(SSL / TLS)免费证书申请及网站证书部署实战总结
服务器环境:windows server 2008 + tomcat7 废话不多说,先看部署效果: 一.免费证书申请 Let's Encrypt 简介:let's Encrypt 是一个免费的开 ...
- Let's Encrypt 安装配置教程,免费的 SSL 证书
官网:https://letsencrypt.org/ 安装Let's Encrypt 安装非常简单直接克隆就可以了 git clone https://github.com/letsencrypt/ ...
- 七牛云域名DV SSL证书申请流程以及CDN融合加速配置
从2017年起,苹果ios以及微信小程序都陆续要求请求连接request地址是使用HTTPS协议的.所以在项目开发阶段就要考虑解决https的问题,同时这也是为项目实际安全所考虑.最近我也是在折腾项目 ...
- HTTPS上线过程说明(阿里云提供免费证书)
一.上马HTTPS的原因: ①.苹果App Store强制其平台上的app均要使用HTTPS ②.网站经常被劫持,用户和领导希望使用HTTPS ③.跟随HTTPS的大趋势 二.应用上马HTTPS之部门 ...
- Nginx 实现 HTTPS(基于 Let's Encrypt 的免费证书)
SSL / TLS加密会为您的用户带来更高的搜索排名和更好的安全性. Let’s Encrypt 是一个认证机构(CA).它可以提供免费证书,并且已经被大多数浏览器所信任.另外,通过工具 Certbo ...
- https免费证书申请certbot,nginx
官网:https://certbot.eff.org/ 下载: wget https://dl.eff.org/certbot-auto chmod a+x certbot-auto ./certbo ...
- nginx伪静态配置教程总结
在nginx中配置伪静态,也就是常说的url重写功能,只需在nginx.conf配置文件中写入重写规则即可. 当然,这个规则是需要熟悉正则表达式,只掌握nginx自身的正则匹配模式即可,对正则不了解的 ...
- nginx实现https网站设置
一.HTTPS简介 1.https简介 HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块.服务端和客户端的信息传输都会通过TLS进行加密, ...
随机推荐
- javascript 数组求交集/差集/并集/过滤重复
最近在小一个小程序项目,突然发现 javscript 对数组支持不是很好,连这些基本的功能,都还要自己封装.网上查了下,再结合自己的想法,封装了一下,代码如下. //数组交集 Array.protot ...
- Mac下使用VScode进行C/C++开发
1.安装 从VScode官网下载Mac系统适用的VScode安装包,下载完成后,将zip安装包解压到桌面即可. 2.插件安装 实现 C/Cpp 代码自动补全,函数跳转. 打开VScode后,按下组合键 ...
- Java虚拟机(二)对象的创建与OOP-Klass模型
前言 在前一篇文章中我们学习了Java虚拟机的结构原理与运行时数据区域,那么我们大概知道了Java虚拟机的内存的概况,那么内存中的数据是如何创建和访问的呢?这篇文章会给你答案. 1.对象的创建 对象的 ...
- Android--自定义控件---自动分页的GridView
最近,根据项目需求,需要一个能够自动分页的导航,所以便自定义了一个自动分页的GridView. 思路:继承RelativeLayout,然后在里面放了一个viewpager和一个GridView... ...
- Keil下载时出现program fail错误的一个原因
在使用Keil给STM32单片机编程的时候有时会出现Programing Failed!对于这样的错误网上有很多的教程,错误的原因也有很多,比如是单片机上锁,环境配置错误的原因导致.这里我将提供一种错 ...
- MySQL crash-safe replication(1)
MySQL 5.6 对复制功能提供了新特性:slave 支持 crash-safe,可以解决之前版本中系统异常断电可能导致的 SQL thread 信息不准确的问题. 原文:Enabling cras ...
- 【存在问题,待修改】SSH 远程登陆
0. 前提 设置 hosts 参考链接 Linux 配置 hosts SSH公钥登录原理 1. SSH 是什么 SSH ( Secure Shell ) 是一种协议标准,其目的是实现安全远程登录以及其 ...
- 第五次作业 hql查询
hql查询是基于对象的查询,不是基于表的查询. 1.hql的简单查询 @Test public void queryUsers() { //简单查询 SessionFactory sf = null; ...
- struts2框架
详细教程 参考struts教程https://www.w3cschool.cn/struts_2/struts_configuration.html Struts2 基于MVC设计模式的web应用程序 ...
- PgSQL基础之 pgsql与mysql的简单区别
1.支持的booloan类型的值 mysql并不支持boolean类型,即便当我们创建了boolean的字段属性之后,mysql会自动将其转化为tinyint(1)类型.当插入“true”的时候,其值 ...