HTTPS就等于HTTP加上TLS(SSL),HTTPS协议的目标主要有三个:
数据保密性。保证内容在传输过程中不会被第三方查看到。就像快递员传递包裹时都进行了封装,别人无法知道里面装了什么东西。
数据完整性。及时发现被第三方篡改的传输内容。就像快递员虽然不知道包裹里装了什么东西,但他有可能中途掉包,数据完整性就是指如果被掉包,我们能轻松发现并拒收。
身份校验。保证数据到达用户期望的目的地。就像我们邮寄包裹时,虽然是一个封装好的未掉包的包裹,但必须确定这个包裹不会送错地方。
启用HTTPS之前需要有证书,而证书需要首先在自己服务器上创建CSR,对应的公钥和私钥。这里我全部都拿Nginx服务器举例,Apache也不会差太多,都是基于openssl的。因为我只有一个主机域名www.Vevb.com,所以证书方便选择了COMODO的PositiveSSL,每年9刀。需要注意COMODO要求证书至少是2048位,见下面的命令。激活证书的时候需要注意common name那里要填写自己的域名地址,我因为并不使用Vevb.com,所以这里写的就是www.Vevb.com,需要注意这两个主机地址是不同的。其他的组织名公司名什么的如果没有就写NA,不要留空。下面简单说一下步骤
1、以root登录,升级服务器。这里是为了解决OpenSSL的一个大漏洞CVE-2014-0224,因为ChangeCipherSpec消息的问题可能导致中间人攻击,解密并修改被攻击的服务器和客户端之间的通信,从而获得加密的数据。
查看OpenSSL版本,确认至少在1.0.1h以上,
openssl version -a
如果没有,升级服务器,以Debian为例
apt-get updateapt-get upgrade
2、创建CSR和私钥
openssl req -new -newkey rsa:2048 -nodes -keyout www.Vevb.com.key -out www.Vevb.com.csr
得到2个文件,私钥www.Vevb.com.key,CSR文件www.Vevb.com.csr,其中CSR里面的内容在激活证书的时候需要提交
3、购买证书,完成激活,下载证书文件
下载的证书文件通常是一个压缩包,有些是2个文件,有些是4个文件
如果是2个文件,是这样的:
www_jb51_net.ca-bundle www_jb51_net.crt如果是4个文件,通常都是这样的:
www_jb51_net.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt其中www_slyar_com.ca-bundle就是自动合并了其他3个文件的产物,一个道理
4、合并证书,顺序一定不能错
cat www_jb51_net.crt www_slyar_com.ca-bundle > www.Vevb.com.crt
或者
cat www_slyar_com.crt www_slyar_com.ca-bundle > www.Vevb.com.crt
最后产生的www.Vevb.com.crt是4个文件的合并,此文件与之前产生的www.Vevb.com.key一起组成了Nginx需要使用的证书
新闻热点
疑难解答