我们可以在 softether vpn 服务器中使用 CA 签名的证书(比如 let's encrypt )吗?

我们可以在 softether vpn 服务器中使用 CA 签名的证书(比如 let's encrypt )吗?

我正在尝试将 let's encrypt 证书附加到我的 softether vpn 服务器,但没有找到方法。我们可以在 vpn 服务器中使用 CA 签名的证书(如 let's encrypt)吗?如果可以,请提供流程。

答案1

在 VPN 服务器上使用 Let's Encrypt 证书的主要挑战是其有效期非常短,只有 3 个月。这意味着有一些先决条件:

  • 一旦 Certbot 更新了证书和私钥,您必须能够自动加载它们。幸运的是,Softether 有一个命令行管理实用程序. 你应该至少熟悉6.2 一般用法vpncmd为了理解这个答案中的步骤1和3。
  • VPN 服务器需要在 HTTP 端口 80 上公开访问,以便HTTP-01 挑战。此外,Softether VPN 服务器没有内置 HTTP-01 验证,因此需要外部 Certbot。

脚步:

  1. 您应该将 Let's Encrypt 添加为 VPN 客户端的受信任的 CA。

  2. 安装并配置 Certbot:根据你的网络服务器和系统给出的说明

  3. 创建一个脚本/任务/cronjob,定期更新证书和密钥。

    • Certbot 会更新所有将在一个月内到期的证书。因此,旧证书最多还有一个月才会到期,但为了尽量减少失败的可能性,我建议每周至少运行一次此脚本。

    • 该命令来自6.3.20 “ServerCertSet”:设置 VPN 服务器的 SSL 证书和私钥, 是:

      ServerCertSet [/LOADCERT:cert] [/LOADKEY:key]
      

      /LOADCERT指定要使用的X.509格式的证书文件。

      /LOADKEY指定证书要使用的 Base 64 编码的私钥文件。

      例如,对于 Debian Linux,命令可能是:

      vpncmd /server localhost /password:password /adminhub:DEFAULT
          /cmd ServerCertSet \
          /LOADCERT:/etc/letsencrypt/live/vpn.example.com/cert.pem \
          /LOADKEY:/etc/letsencrypt/live/vpn.example.com/privkey.pem
      

答案2

对于 letsencrypt 质询,VPN 服务器无需在端口 80 上公开访问。您可以使用 --preferred-challenges DNS 选项,并为您的主机创建 DNS txt 记录。

例如:certbot certonly -d yourhost.your.domain --manual --preferred-challenges dns

这将提示你创建新的 dns txt 记录


请在名称 _acme-challenge.yourhost.your.domain 下部署具有以下值的 DNS TXT 记录:

一些随机生成的密钥

继续之前,请验证记录是否已部署。


相关内容