在写完后的一周多时间后,终于,我的域名备案完了,又可以开始搞博客了。现在博客访问没什么问题,可是缺少SSL证书,浏览器总是提示不安全,那这肯定不能少,今天给安排上。
HTTPS部署
本来是打算使用腾讯云的免费证书的,结果发现腾讯云的免费证书局限很大,仅支持一个一级域名或者一个二级域名,相当坑爹。
这一步操作要说明的是,很多老式的使用letsencrypt-auto
命令部署免费证书的方式已经不行了,会报错,如果遇到这种情况,说明certbot团队已经不会通过老式的方式提供部署服务,而需要采用新方法。
具体操作见。
文中作者使用的是nginx,我是用的apache,所以最后一步的命令稍有不同:
最后出现这样的信息就表示证书分发成功。
接下来我们在服务器部署SSL证书。
首先要确保443端口启用,如果没启用,可以参考。
其次需要确保SSL模块已经打开,如果是apache2.4的话,是默认打开的。
接下来要在vhost配置中增加内容:
<VirtualHost *:80> # This first-listed virtual host is also the default for *:80 ServerName www.icexmoon.xyz ServerAlias icexmoon.xyz DocumentRoot "/var/www/html" </VirtualHost> <VirtualHost *:443> # This first-listed virtual host is also the default for *:80 ServerName www.icexmoon.xyz ServerAlias icexmoon.xyz DocumentRoot "/var/www/html" SSLEngine on SSLCertificateFile "<your certificate file>" SSLCertificateKeyFile "<your private key file>" </VirtualHost>
只需要配置一个和你的80端口相同的vhost主机配置即可,端口修改为443,唯一的区别就是加上SSL相关设置,配置中<>
包裹的内容要修改为你自己的证书,也就是上边获取的免费证书和key。
如果是通过腾讯云签发的证书好像有三个文件,一个pem密钥和两个crt文件,配置略有不同,不过我这里是两个pem密钥。
类似的,如果你还有一些二级域名虚拟主机配置,要加上SSL的话也同样操作。
重启httpd:systemctl restart httpd
。
如果没问题的话你就可以使用https来访问你的网站了,但是现在还有个小瑕疵,你手动访问http是不会自动跳转到https的。
自动跳转HTTPS
修改vhost配置:
<VirtualHost *:80> # This first-listed virtual host is also the default for *:80 ServerName www.icexmoon.xyz ServerAlias icexmoon.xyz DocumentRoot "/var/www/html" <Directory "/var/www/html"> RewriteEngine on RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)?$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R] Require all granted </Directory> </VirtualHost>
如果要在其它虚拟主机中加入相关配置,则修改相应80端口配置以实现自动跳转到HTTPS。
修改好后重启apache:systemctl restart httpd
。
如果一切正常的话,访问http://xxx.xx
就可以自动跳转到相应的https站点。
现在还有个问题,如果你现在使用WordPress管理后台的话,是不能正常进入后台的。不要慌,可以通过以下步骤恢复后台访问:
-
注释掉虚拟主机里博客的80端口HTTPS跳转。
-
重启apache。
-
进入管理后台,在设置>常规中修改WordPress地址和站点地址,改为https的地址。
-
保存后恢复虚拟主机中的路径重写设置。
-
重启apache。
证书自动更新
我们申请的免费证书是有时限的,现时90天,所以我们需要设定定时更新证书。
修改crontab:
crontab -e
按i进入输入模式:
设置每天更新证书(其实频率可以降低,这个有时间再研究):
0 0 1 * * /usr/bin/certbot renew --force-renewal
按ESC退出输入模式,输入:wq
保存并推出vi编辑器。
更多vi编辑器用法可以看。
文章评论