由于网络限制,我们升级了脚本
diary.sh,使其能够在无法访问 GitHub
的电脑上本地托管博客,这样在办公环境中可以使用高度定制化的博客系统,从而提高工作效率和规范性。尽管通过
Python3 实现的博客可以在本地域名 127.0.0:4000 或
http://localhost:4000
上运行,但在浏览器地址栏中看起来不够美观,并且需要在
Firefox 中手动设置代理为
http://localhost:4000。为此,本节介绍了一项锦上添花的技术:使用
Caddy 反向代理并生成自签名证书,这样当访问
https://fungzhenhua.github.io 时,实际上是在访问
http://localhost:4000 的内容。
配置Caddy
安装Caddy
Install Caddy
配置Caddy, 使用自签名证书
/etc/caddy/conf.d/fungzhenhua.conf1 2 3 4
| fungzhenhua.github.io { tls internal reverse_proxy localhost:4000 }
|
测试配置是否正确
1
| sudo caddy validate --config /etc/caddy/Caddyfile
|
如果看到Valid configuration字样,说明配置正确,字样通常在最后一行。
启动Caddy
启动Caddy1 2
| sudo systemctl enable caddy sudo systemctl start caddy
|
重启Caddy
重启Caddy1
| sudo systemctl restart caddy
|
Firefox导入证书
在完成上述Caddy设置后,发现每次打开Firefox后总是有风险提示,为了应对这个麻烦需要使用Firefox导入由Caddy生成的证书。由于使用tls internal方式,则Caddy默认生成的证书存放于/var/lib/caddy/pki/authorities/local/root.crt,
访问它需要root权限,于是解决方案是将其复制到家目录,然后赋于读写权限,再导入到Firefox的证书分布机构则问题可解决。
具体操作
1 2 3 4
| sudo cp /var/lib/caddy/pki/authorities/local/root.crt ~/caddy-root.crt
sudo chown $USER:$USER ~/caddy-root.crt
|
如果是其他的Linux发行版,则需确认具体root.crt的路径。
在Firefox中导入
- 打开
about:preferences#privacy
- 点击
查看证书...
- 切换到
证书颁发机构标签页(注意:不是您的证书标签页)
- 点击
导入
- 选择
~/caddy-root.crt
- 勾选三个信任 → 确定