不知不觉这个小破站运行也快要一年整了,一年前网站刚开放,我天天修bug到凌晨两三点的情景还历历在目……主要还是自己对网站搭建框架不熟悉,看不懂代码整不清楚linux操作(虽然现在也没好到哪儿去)。一年过去了通过自学确实学习了很多计算机方面的知识,有空再做个总结吧~
一年前想写如何部署ssl证书的,如今一年快到了正好要续上ssl证书,这篇博客算是补档吧~记录下自己的操作
1. SSL部署的意义
前面在http原理部分说过,HTTPS的安全基础是ssl,部署ssl之后有以下优点:
- 建立数据信息安全通道,保障信息安全
- 有https协议的网站更容易被google、baidu收录
- 用户浏览https协议的网站地址有锁头标志,不会显示信息安全提醒页面
2. 申请SSL证书
我是在腾讯云上购买的轻量云服务器,在哪个服务器供应商买的服务器就到对应的平台,搜索SSL证书,点击申请免费证书
选择第一个免费版即可,填写你要绑定的域名,验证方法选择手动DNS验证,提交申请
这一步需要到对应的域名供应商那里进行DNS解析
我是在阿里云买的域名,因此在阿里云控制台找到你要绑定的域名,添加记录,输入上面图红框里的对应信息
回到腾讯云,点击验证域名即可,后续根据自己的服务器类型(我是Apache 服务器)选择对应的证书。第一次申请的话可能会让你完善身份信息。需要注意,如果域名被托管到其他平台,需要到对应的托管平台进行DNS解析,否则会查询不到解析记录。
3. 部署SSL证书
申请成功后,进入SSL证书管理平台,点击已签发,就可以看到刚刚申请的SSL证书了,首先把证书下载到本地
解压可以看到如下四个文件,.crt
后缀的是证书链和证书文件,.csr
后缀的是提供给CA的文件,.key
后缀是私钥文件
再次强调一下Apache服务器、Nginx服务器等等的部署目录是不同的,我这里是apache服务器,需要将上面的四个文件上传到服务器/etc/httpd/ssl/
目录下。
如果之前部署过ssl证书,到这一步以后直接service network restart
重启http服务就行了。
如果是第一次安装,进入/etc/httpd/conf
目录,修改 httpd.conf
配置文件:
1 | Include conf.modules.d/*.conf # 第56行确保该命令未被注释,用于加载SSL的配置目录 |
进入/etc/httpd/conf.modules.d
目录,修改00-ssl.conf
配置文件:
1 | LoadModule ssl_module modules/mod_ssl.so # 第1行确保该命令未被注释,用于加载SSL模块 |
进入/etc/httpd/conf.d
目录,修改ssl.conf
配置文件:
1 | DocumentRoot "/var/www/html" # 配置虚拟主机的位置,路径可以改,建议还是用默认的 |
以上配置完成后,重启网络服务service network restart
,这个时候再访问网站就是https协议了。
参考自SSL 证书 Apache 服务器 SSL 证书安装部署(Linux)-证书安装-文档中心-腾讯云 (tencent.com)
需要注意下,证书到期之后不会自动部署…一般这种免费的SSL证书时间都是1年,在到期前一个月会有提醒,申请完成之后直接覆盖快到期的原证书即可。(省下了一笔自动部署的90块钱)
特别注意
SSL证书部署后都是立即生效的,如果你发现网站仍然提示非安全连接,可以看看自己是否用了其他第三方加速。
比如你的网站用了CDN加速,需要同时在第三方加速平台上进行HTTPS配置更改,否则SSL证书无法生效!
比如我这里用了又拍云的CDN加速,且设置了HTTPS访问,不更改成新申请的证书就无法生效。每个CDN加速平台设置HTTPS方法不一样,这里就不详细说了。
2024.4.1 更新
又到了一年更换ssl证书的时候,发现又拍云始终设置不了新申请的ssl证书,提示您所提交的证书中证书链可能不完整,请检查后再提交,更神奇的是我用去年还没过期的证书验证,也是同样的提示(去年并不是这样的?)
解决方法:
我在腾讯云申请的ssl证书,下载了Nginx服务器类型的证书文件,其中pem和key文件中的内容分别复制到又拍云控制台上传证书的窗口,验证成功;下载Apache服务器类型的证书文件(我服务器安装的是Apache),用于服务器中原ssl证书4个文件的替换。重启网络服务后,解决问题。
可能是Apache服务器类型的证书链和证书文件不完整,Nginx的pem文件提供的证书信息更完整一些,又拍云官方也推荐使用nginx格式的证书上传。这里做个记录。