搭建好了博客之后,虽然实现了 docker 容器配合 GitHub Actions 的自动化部署,但是一直用的是 http 网络,另一方面, 自从 17 年开始,Chrome 浏览器中回对非安全性的链接标记出来,显示为"不安全的链接", 这就使得网站非常的不专业, 还会受到一些限制, 为了网站的安全性, 那就动手吧!
申请证书
目前,申请 ssl 证书的途径也是比较多的,我这里以 Let's Encrypt 为例,并且结合宝塔面板作为辅助.
为什么要使用宝塔面板?
- 这个工具对于新手来说是比较友好的,可视化的工具比枯燥的命令行看起来更舒服些
- 对于免费的 ssl 证书,通常情况下其有效期比较短,宝塔面板支持自动续签功能, 不用担心 ssl 证书过期.
宝塔面板的安装:
Linux 面板 7.1.0 安装命令:
Centos 安装命令:
试验性 Centos/Ubuntu/Debian 安装命令支持,注意使用 root 权限执行此命令
curl -sSO http://download.bt.cn/install/new_install.sh && bash new_install.sh
Ubuntu/Deepin 安装命令:
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
Debian 安装命令:
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh
Fedora 安装命令:
wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh
安装完成!
添加站点
输入你的域名,添加完成之后在这里就可以看到了.
我这里把站点停掉了,因为我用 docker 部署的, 我把 NGINX 的反向代理直接指向 docker,所以添加网站的时候这个目录可以不用放静态资源.这里我用到的只是这个网站设置里面的网站管理工具.
SSL 证书管理
管理-SSL,可以看到有两种类型的证书可以申请:宝塔 SSL 和 Let's Encrypt.切换到 Let's Encrypt 之后按照提示去申请,在面板上已经写得很清楚了,按照说明到域名解析服务器那里添加两条记录:
按照制定的域名解析操作完成之后,点击验证, 通过之后证书就已经申请成功了.
申请好证书之后的文件,面板会将其放在/www/server/panel/vhost/cert/www.mfcookie.cf 该目录下,有两个文件
这两个文件就是一会儿要在 NGINX 配置文件里用到的.
配置 NGINX
下面去修改 NGINX 配置使证书生效.附上我的 NGINX 配置:
upstream backend {
server 127.0.0.1:8082 max_fails=3 fail_timeout=30s;
}
server {
# 最新写法,ssl on 的写法已经不推荐了!
listen 443 ssl;
server_name mfcookie.cf www.mfcookie.cf;
# 证书相关,https新增
ssl_certificate /www/server/panel/vhost/cert/www.mfcookie.cf/fullchain.pem;
ssl_certificate_key /www/server/panel/vhost/cert/www.mfcookie.cf/privkey.pem;
ssl_session_timeout 5m;
access_log /www/wwwlogs/www.mfcookie.cf.log;
location / {
proxy_pass http://backend$request_uri;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header http_x_forwarded_for $remote_addr;
client_max_body_size 10m;
}
}
server {
# http跳转到https,这样就只存在https的博客了
listen 80;
server_name mfcookie.cf www.mfcookie.cf;
rewrite ^(.*)$ https://$host$1 permanent;
}
配置完 NGINX 之后重载 NGINX 配置,这样就可以使用 HTTPS 访问网站了.
调整 docker-compose 文件
由于我使用的 docker 部署,还需要调整一下 docker-compose.yml 文件.完整的 docker-compose 文件在这篇文章中有过讲述,这里只需修改最后一行为 https 即可:
--listen_port=8082 --server_scheme=https --server_host=www.mfcookie.cf --server_port=
验证
下面就是见证奇迹的时刻了!
没错,他变成了一把性感的小锁! 连接是安全的!
点开看一下证书有效期:
马上要过期了! 怎么办! 不用管! 宝塔面板来解决!
自动续签
此时宝塔面板中关于网站的 SSl 是这样的:
已部署成功, 将在距离到期一个月内尝试自动续签!
好的!完美!
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于