1. 前言
之前的两篇文章简单记录了 Typecho
博客的搭建过程:
1.基于Rocky Linux 8.10系统使用源码搭建LNMP环境,附加安装SQLite
2.基于LNMP环境搭建Typecho博客
但这里面因为是内网演示使用的是 http
访问,不涉及任何 https
的设置。现在到处都能看到网站服务器使用 https
,说是安全性好,咱不懂,也没精力和技术去研究,也不知道咱这没流量的小破站需不需要那么高的安全性,服务器上也没啥重要数据,对安全性我到没那么高要求,毕竟不知道哪天就到期关闭了。。哈哈哈!但是话说回来,对不支持 https
的网站浏览器左上角会出现红色叉叉的 http
标识,实在是太扎眼了,既然都说 https
好,那咱也来折腾一下吧,努力把这个博客搞得好看一点,正规一点,虽说没啥内容,但看着高大上也是不错的。
注:以下实验在阿里云轻量应用服务器完成,并非前两篇文章的内网实验,所以之前文中出现的内网IP 192.168.31.84
在本文中由域名 all.17zturn.com
代替,仅IP变化,其他参数配置一致。
2. 申请免费的SSL证书
要使网站支持 https
访问,首先得准备好 SSL
证书。别问我这是啥,我也不知道,专业的解释需要去专业的地方搜索,作为普通玩家,只要知道需要这么个东西就行了。首先这个证书的获取并不容易,专业的是需要收费的,且费用不低,好在现在为了推广使用 https
,有许多机构推出了免费的证书申请,这里我使用的是大名鼎鼎的 Let's Encrypt。从这里申请的证书对专业用途有缺陷,有效期只有90天,但对普通玩家来说已经足够,反正到期可以再次申请新的证书,配置好脚本还可以自动进行申请。
2.1. 安装ACME客户端
引用官方的一段说明 Let's Encrypt 入门指南
为了在您的网站上启用 HTTPS,您需要从证书颁发机构(CA)获取证书(一种文件)。 Let’s Encrypt 正是其中一家证书颁发机构。 要从 Let’s Encrypt 获取您网站域名的证书,您必须证明您对域名的实际控制权。 这一过程通常由 Web 主机上运行的 ACME 协议客户端完成。
官网推荐的 AME
协议客户端是 Certbot。但是我这里选用的是acme.sh,其他更多客户端可参考官网提供的客户端列表ACME 客户端。
acme.sh
的安装特别简单,以下操作都以 root
用户执行
安装后的文件存放在 ~/.acme.sh
目录下,根据项目介绍,后续所有操作的修改都在这个文件内完成,不会污染其他系统文件。
安装完成后,推荐关闭终端并重新启动新终端,这样可以直接使用 acme.sh
命令而不用加上繁琐的路径。
2.2. 申请证书
设置默认ca服务器( acme.sh
脚本默认ca服务器是 zerossl
,经常出错,会导致获取证书的时候一直出现:Pending, The CA is processing your order, please just wait.
)
http方式验证域名(需保证 acme.sh
客户端与网站内容在同一服务器上)
这里 acme.sh
客户端会在网站根目录下创建一个验证文件并完成自动验证,验证通过即会自动生成证书。
2.3. 安装证书
需要使用 acme.sh
客户端自带的命令来安装证书,不可直接使用 ~/.acme.sh
目录下的证书文件
3. 配置Nginx支持https
3.1 http强制跳转https
配置 http
强制跳转 https
后,这样即使在浏览器输入 http://all.17zturn.com 也会自动跳转到 https://all.17zturn.com 页面。
编辑博客站点的nginx配置文件
将原来的 server
块的内容注释掉,修改后的所有内容如下
3.2 https配置
增加博客站点新的https的配置
编辑内容如下
重新加载 nginx
浏览器访问 https://all.17zturn.com 能成功显示博客即说明配置成功。
评论 (0)