使用http访问自己搭建的服务时,浏览器会出现不安全相关提示,体验感比较差,因此需要想办法生成https的证书
前情提要
- VPS Ubuntu24.04 LTS
- VPS 拥有公网IP
- 拥有自己的域名(使用mr-h.org举例)
- VPS已经安装好nginx,headscale,headscale web ui
- 生成证书的工具为cerbot(生成p2p.mr-h.org的证书)
- 以下均在VPS上进行
安装cerbot
- 安装certbot相关包
1 | sudo apt update |
配置域名解析和域名解析代理策略
- 在cloudflare中添加二级域名,并指向自己服务器的ip

- 在cloudflare中修改代理策略为严格。(注意:如果选择灵活可能会导致申请证书后,使用https访问出现代理次数过多的错误)

nginx配置
- 在/etc/nginx/sites-available 创建headscale的进包含http服务的配置,配置内容如下。(注意:这里根据字节的域名和headscale的端口填写)
1 | map $http_upgrade $connection_upgrade { |
- 将配置软链接到/etc/nginx/sites-enabled
1 | sudo ln -s /etc/nginx/sites-available/headscale /etc/nginx/sites-enable |
- 测试,重载,重启nginx
1 | sudo nginx -t |
certbot申请证书
- 使用certbot申请证书(注意:填写自己的域名)
1 | sudo certobot --nginx -d p2p.mr-h.org |
- 执行完申请证书的命令后,可以看到nginx里headscale的配置配置被修改。
- 使用浏览器访问https://p2p.mr-h.org/web 是否能够正确使用https协议。(注意:1.访问自己的域名。2.已经搭建好了headscale 和 headscale wei ui)
- 如果上面还是无法使用http协议,可参考我的配置进行修改。(注意:根据自己的域名、域名证书和headsale端口修改))
1 | map $http_upgrade $connection_upgrade { |