使用Caddy反向代理本地域名

由于网络限制,升级了脚本diary.sh, 从而实现了无法上github的电脑上本地托管博客的功能,这样在办公环境中可以使用高度自定义的博客,进而提高办公规范和效率。然而,借助python3实现的博客工作于本地域名127.0.0:4000http://localhost:4000, 虽然实现了功能,但是还需要修改firefox的主而为http://localhost:400, 在地址栏中看起来不爽,所以本节是锦上添的技术:使用Caddy反向代理,生成自签名证书,从而实现访问https://fungzhenhua.github.io时实际上是访问http://localhost:4000效果。

配置Caddy

安装Caddy

Install Caddy
1
sudo pacman -S caddy

配置Caddy, 使用自签名证书

/etc/caddy/conf.d/fungzhenhua.conf
1
2
3
4
fungzhenhua.github.io {
tls internal
reverse_proxy localhost:4000
}

测试配置是否正确

1
sudo caddy validate --config /etc/caddy/Caddyfile

如果看到Valid configuration字样,说明配置正确,字样通常在最后一行。

启动Caddy

启动Caddy
1
2
sudo systemctl enable caddy
sudo systemctl start caddy

重启Caddy

重启Caddy
1
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
  • 勾选三个信任 → 确定