我已经运行了一个 OpenVPN AS,并且正在尝试从 letsencrypt 设置 SSL 证书(运行 ubuntu)。
我已设法从 letsencrypt 获取证书(使用 letsencrypt standalone),并希望在 OpenVPN ssl 配置中创建指向证书的符号链接。但是当我查看时,/usr/local/openvpn_as/etc/web-ssl
它与我的/live/domain/cert.pem
etc 中的不同...
有谁知道如何让我的 openvpn 作为提供 letsencrypt 证书的实例吗?
编辑:目录的 ls -l
openvpnas@openvpnas2:/usr/local/openvpn_as/etc/web-ssl$ ls -l
total 16
-rw-r--r-- 1 root root 1111 Mar 10 13:30 ca.crt
-rw------- 1 root root 1708 Mar 10 13:30 ca.key
-rw-r--r-- 1 root root 1078 Mar 10 13:30 server.crt
-rw------- 1 root root 1704 Mar 10 13:30 server.key
root@openvpnas2:/etc/letsencrypt/live/my.domain# ls -l
total 0
lrwxrwxrwx 1 root root 37 Mar 10 19:03 cert.pem -> ../../archive /my.domain/cert1.pem
lrwxrwxrwx 1 root root 38 Mar 10 19:03 chain.pem -> ../../archive/my.domain/chain1.pem
lrwxrwxrwx 1 root root 42 Mar 10 19:03 fullchain.pem -> ../../archive/my.domain/fullchain1.pem
lrwxrwxrwx 1 root root 40 Mar 10 19:03 privkey.pem -> ../../archive/domain/privkey1.pem
答案1
为了在 openvpnas 上使用 letsencrypt 证书,您需要有以下符号链接:
/usr/local/openvpn_as/etc/web-ssl/ca.crt -> /etc/letsencrypt/live/my.domain/fullchain.pem
/usr/local/openvpn_as/etc/web-ssl/server.crt -> /etc/letsencrypt/live/my.domain/cert.pem
/usr/local/openvpn_as/etc/web-ssl/server.key -> /etc/letsencrypt/live/my.domain/privkey.pem
答案2
尝试使用 Ben Flowers 的答案(将 OpenVPN 配置文件夹中的 PEM 文件符号链接到 Let's Encrypt 证书),但没有成功,直到我在OpenVPN 文档:
。。。如果您有自签名证书或任何证书存储在配置数据库中,那么 web-ssl 目录中的文件将被忽略。
如果您从 Web UI 手动上传了证书,则可能会发生这种情况。我使用以下步骤(在同一文档页面上找到)删除了手动上传的证书,然后 Let's Encrypt 证书变为有效。
cd /usr/local/openvpn_as/scripts/
./sacli --key "cs.priv_key" ConfigDel
./sacli --key "cs.ca_bundle" ConfigDel
./sacli --key "cs.cert" ConfigDel
./sacli start
答案3
请不要为 OpenVPN 使用公共 CA。无需将您的 VPN 网络流量托付给外部方。
只需创建自己的 CA,例如easy-rsa。
答案4
我刚刚发现这个很棒的脚本,它让这一切变得完全无痛。
在 crontab 中运行此脚本将使您永远保持更新。
https://gist.github.com/mkubenka/109d853cee9556fa37cbc55958a2c3d5