红茶的个人站点

  • 首页
  • 专栏
  • 开发工具
  • 其它
  • 隐私政策
Awalon
Talk is cheap,show me the code.
  1. 首页
  2. 其它
  3. 正文

腾讯云博客搭建 III

2021年4月2日 1476点热度 0人点赞 0条评论

腾讯云博客搭建 III

在写完前文后的一周多时间后,终于,我的域名备案完了,又可以开始搞博客了。现在博客访问没什么问题,可是缺少SSL证书,浏览器总是提示不安全,那这肯定不能少,今天给安排上。

HTTPS部署

本来是打算使用腾讯云的免费证书的,结果发现腾讯云的免费证书局限很大,仅支持一个一级域名或者一个二级域名,相当坑爹。

这一步操作要说明的是,很多老式的使用letsencrypt-auto命令部署免费证书的方式已经不行了,会报错,如果遇到这种情况,说明certbot团队已经不会通过老式的方式提供部署服务,而需要采用新方法。

具体操作见certbot-auto不再支持所有的操作系统,新的ssl证书方法。

文中作者使用的是nginx,我是用的apache,所以最后一步的命令稍有不同:

certbot certonly --apache --email icexmoon@qq.com -d blog.icexmoon.xyz -d icexmoon.xyz

image-20210402105215612

最后出现这样的信息就表示证书分发成功。

接下来我们在服务器部署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管理后台的话,是不能正常进入后台的。不要慌,可以通过以下步骤恢复后台访问:

  1. 注释掉虚拟主机里博客的80端口HTTPS跳转。

  2. 重启apache。

  3. 进入管理后台,在设置>常规中修改WordPress地址和站点地址,改为https的地址。

image-20210402135639134

  1. 保存后恢复虚拟主机中的路径重写设置。

  2. 重启apache。

证书自动更新

我们申请的免费证书是有时限的,现时90天,所以我们需要设定定时更新证书。

修改crontab:

crontab -e

按i进入输入模式:

image-20210402141128525

设置每天更新证书(其实频率可以降低,这个有时间再研究):

0 0 1 * * /usr/bin/certbot renew --force-renewal

按ESC退出输入模式,输入:wq保存并推出vi编辑器。

更多vi编辑器用法可以看这里。

好了,大功告成。

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: Apache HTTPS SSL wordpress
最后更新:2021年4月19日

魔芋红茶

加一点PHP,加一点Go,加一点Python......

点赞
< 上一篇
下一篇 >

文章评论

取消回复

*

code

COPYRIGHT © 2021 icexmoon.cn. ALL RIGHTS RESERVED.
本网站由提供CDN加速/云存储服务

Theme Kratos Made By Seaton Jiang

宁ICP备2021001508号

宁公网安备64040202000141号