抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

不知不觉这个小破站运行也快要一年整了,一年前网站刚开放,我天天修bug到凌晨两三点的情景还历历在目……主要还是自己对网站搭建框架不熟悉,看不懂代码整不清楚linux操作(虽然现在也没好到哪儿去)。一年过去了通过自学确实学习了很多计算机方面的知识,有空再做个总结吧~

一年前想写如何部署ssl证书的,如今一年快到了正好要续上ssl证书,这篇博客算是补档吧~记录下自己的操作

1. SSL部署的意义

前面在http原理部分说过,HTTPS的安全基础是ssl,部署ssl之后有以下优点:

  1. 建立数据信息安全通道,保障信息安全
  2. 有https协议的网站更容易被google、baidu收录
  3. 用户浏览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
2
3
4
5
6
DocumentRoot "/var/www/html"	# 配置虚拟主机的位置,路径可以改,建议还是用默认的
ServerName xxxxx.com # 填写证书网站名称
SSLEngine on # 确保SSL功能打开
SSLCertificateFile /etc/httpd/ssl/xxxxx.com.crt # 确定证书路径
SSLCertificateKeyFile /etc/httpd/ssl/xxxxx.com.key # 确定私钥路径
SSLCertificateChainFile /etc/httpd/ssl/root_bundle.crt # 确定证书链路径

以上配置完成后,重启网络服务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格式的证书上传。这里做个记录。

欢迎小伙伴们留言评论~