Ssl的那些事儿

最近配置ssl的一些了解

因为客户要求使用https来进行网站访问,考虑到传输安全的因素,我也去https://www.ssls.com买了一个比较便宜的证书,从属于Comodo。

SSL的证书需要由权威机构进行颁发。

原因是,权威机构很权威,具有较高的资质和技术保障,相当于你为什么把钱存在中国银行,而不是别人的手中。

如果某家机构违法了规定,任意或恶意颁发证书,那么这家机构的证书都可能会被不认同。例如沃通🤔。

这是我目前的环境:

  • CentOS 6.6
  • Apache 2.2
  • PHP 7.0.6
  • MySQL 5.1
  1. 在自己的服务器上产生自身的私钥和公钥

    (密钥长度至少为1024位,不建议4096。加密过度复杂,安全性会提高,但是相应的cpu计算量也会增大,如果你的机器配置较低,光加解密会消耗大量时间)。

  2. 然后生成根数字证书,并且将数字证书传输给证书商。

  3. 之后就能下载一个txt文件(文件名数字和英文混合),里面有一个随机的认证字符串和comodoca.com。

    把它放在通过域名后加文件名能直接访问到的公共目录下,便于认证服务器确认。

  4. 等待几分钟后,能在证书商那下载相应的证书,并上传至你的服务器。

  5. 在conf.d/ssl.conf中修改相应的证书位置。并重启Apache。

  6. 几分钟内就能生效。

P.S. 之中向ssls的客服请教了很多,服务态度很不错。

http向https跳转的问题

即80端口强制跳转到443端口,在服务端使用301状态码。

因为我的是Apache服务端,所以用的自然是rewrite模块。

可以

  1. 通过http.conf(不建议)
  2. vhost中的配置
  3. 站点根目录下的.htaccess修改

推荐配置:

	RewriteEngine on
	RewriteCond %{HTTPS} off
	RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}

upyun的CDN服务

如果你的站点使用了cdn,那么需要在cdn的服务商那上传你的证书,让服务商分发到各个边缘节点,便于反向代理。

否则无法使用https访问。