写在前面
如今 HTTPS 对于一个网站来说几乎是必不可少的。但可惜的是关于 Hexo 使用 HTTPS 的教程比较稀少。咱当然可以根据网上的教程,为 Apache 或者 Nginx 上 HTTPS,并且把 Hexo 的文章部署上去。但如果是这样的话,我也没有必要写这篇教程了。又或者,咱其实可以查阅 Nodejs 官方提供的文档中关于 HTTPS 模块的内容,然后自己照着写 server.js , 不过谁想阅读文档呢?因此,咱以 为Hexo博客启用HTTPS协议 为基础,写了一篇几乎可以说是’step-by-step’的教程。当然,咱用的 SSL 是免费的 Let’s Encrypt.
准备工作
- 一台可以从外网访问的主机(当然,已经安装了 Hexo 以及必要软件。还有,你用的应该是 GNU/Linux 吧?)
- 一个域名
- Certbot
Certbot 部分
首先咱要安装 Certbot。官方文档给的方案是使用 snap,不过咱觉得这样并不有利于管理,所以建议大家选用原生的软件包管理来装吧。
- Debian 系安装:
sudo apt install certbot
- 红帽系安装:
sudo dnf install certbot
接下来我们在终端里运行 sudo certbot certonly
, 跟着指引输入,需要的必要信息有邮箱地址和域名。
颁发证书后会 Certbot 会告诉你证书的位置,把它记录下来。一般形如 /etc/letsencrypt/live/bethaod.gleeze.com/fullchain.pem
(证书),/etc/letsencrypt/live/bethaod.gleeze.com/privkey.pem
(密钥)。其他的文件不需要去管。
不过呢如果咱现在不是 root 用户的话,是访问不了这两个文件的。 为了保证即使是以普通用户的身份运行服务器时,咱依然能访问这两个文件,此时要改变这两个文件的访问权限。
运行chmod 0755 /etc/letsencrypt/{live,archive}
, 然后chmod 0644 /etc/letsencrypt/live/yourdomain.com/{privkey,fullchain}.pem
。记得要用sudo,并且替换成你的目录。
到这里证书就已经准备好了。
编辑server.js
咱直接把改好的代码贴上来。
1 | ; |
最后不要忘了把yourdomain.com
替换掉。
结语
总的来说这一套操作还是很简单的,快来练习一下吧!
如果觉得写得不错的话,欢迎通过邮箱或者 Telegram 联系咱哦。
更新 实际上通过 Nginx 反向代理并配置 HTTPS 是更好的方式。或者阁下可以直接套 Cloudflare,也能有 HTTPS。
- 本文作者: Bethaod
- 本文链接: https://4iw.de/2024/04/05/利用-Let’s-Encrypt-给-Hexo-博客上-HTTPS/
- 本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议