前言
随着HTTP
协议的越来越不被待见,以及各大浏览器厂商对于HTTP
采取的打压措施,举个栗子,当我在服务器上同时启用HTTP
以及HTTPS
监听的时候,访问HTTP
服务的时候,就会被重定向到HTTPS
的链接上,但是HTTPS
的链接又不存在,然后就会出现如下报错:
所以每次都需要通过chrome://net-internals/#hsts
进行缓存的删除。
至此,我不得不将我的博客更新为HTTPS
协议。
一开始我以为
Hexo
是依赖Nginx
的,直到我花了很长时间才搞明白,Hexo
是完全不依赖Nginx
或者Apache
的,它是一个静态站点,通过NodeJs
生成web server
来展示数据,所以我感觉很多使用Hexo
框架的小伙伴可能需要此博客。
关键词
- HEXO
- 树莓派
没错,整个系统依然是搭建在树莓派上的! - HTTPS://马伯恩的小站(你没访问过的船新版本)
步骤
之前写过一个Broswer-Sync的HTTPS
启用方法,BS就很好,它提供了一个default-config.js
的配置文件,我们直接配置HTTPS
的证书即可。参考如下:
Hexo
Hexo中的Server
与大多数WEB服务器一样,Hexo可以通过nodeJS创建一个connect Server,路径位于
$PWD/node_modules/hexo-server/lib/server.js
,参考如下:
话不多说,我们直接上代码 server.js
:
1 | ; |
注意事项
- 需要添加2个新的引用,分别是
https
和fs
,https
用来创建https Server
,fs
用来读取证书信息:
1
2 const https = require("https");
const fs = require("fs");- 添加一个新的变量,
options
,用来存放证书:
1
2
3
4 const options = {
key:fs.readFileSync("$PWD/5792506_www.majun.fun.key"),
cert:fs.readFileSync("$PWD/5792506_www.majun.fun.pem")
};- 最后我们只需要创建一个https的服务器就可以了:
1 https.createServer(options, app).listen(443);
Q&A
小朋友,你是否喜欢本博客呢?
如果想要我的帮助,可以email我,并描述清楚你的问题,[📧](mailto:jason@majun.fun)
Additional resources
后记
下一篇博客是基于树莓派的私人云盘——OwnCloud,我已经使用一段时间了,非常好用!
搞 事 情 专 用 表 情 包 |
- 本文链接:https://www.majun.fun:93/2021/11/18/Hexo_Enable_Https/
- 版权声明:本博客所有文章除特别声明外,均默认采用 许可协议。