有偏见的letsencrypt acme客户端,通过SSH端口转发工作。
项目描述
letsencrypt-remote
一个有偏见的脚本,通过ssh转发HTTP挑战,在本地计算机上通过letsencrypt签名TLS密钥。
安装
最佳安装方式为pipsi
% pipsi install letsencrypt-remote
或安装包含脚本的Python软件包的其他方式。
要求
您需要在路径中有一个openssl可执行文件,用于密钥生成和签名。
使用测试服务器进行测试
使用-s选项,您可以使用letsencrypt的测试服务器。建议这样做,以免在您的设置工作之前遇到配额限制等问题。生成的证书将无法验证,但其他方面与常规证书相同。
基本用法
创建一个以电子邮件地址为名称的目录,该电子邮件地址是您想用于与letsencrypt进行身份验证的。例如webmaster@example.com
% mkdir webmaster@example.com
创建到服务器的ssh连接,该连接将远程端口转发到本地端口8080
% ssh root@example.com -R 8080:localhost:8080
在您的服务器上,web服务器需要代理请求到example.com:80/.well-known/acme-challenge/*,并将其转发到该转发端口。以下是一个nginx的示例
location /.well-known/acme-challenge/ { proxy_pass http://localhost:8080; }
从您创建的目录中,使用例如调用letsencrypt-remote脚本
% cd webmaster@example.com % letsencrypt-remote example.com www.example.com
在首次运行时,您将被询问是否要为letsencrypt的授权创建一个user.key
之后,将创建所选域的挑战,并在端口8080上启动服务器以提供响应。您的远程Web服务器通过SSH连接将这些响应代理到本地运行的服务器。
如果一切顺利,您将在新的 example.com 文件夹中获取服务器密钥和证书
% ls example.com ... example.com-chained.crt example.com.crt example.com.key
example.com-chained.crt 文件包含您的证书以及 letsencrypt 证书的完整链。
高级用法
要使用基于 DNS 的身份验证,您需要在服务器上安装 socat。另外,您需要设置 DNS,以便将其 _acme-challenge 请求委派到您的服务器。为此,您可以在区域文件或等效文件中添加类似以下内容:
_acme-challenge IN NS www _acme-challenge.www IN NS www
对于转发,您需要添加端口 8053:创建到您的服务器的 ssh 连接,将远程端口转发到本地端口 8080
% ssh root@example.com -R 8080:localhost:8080 -R 8053:localhost:8053
然后在那个 ssh 会话中,运行以下命令将 UDP 端口 53 转发到 TCP 端口 8053
# socat -T15 udp4-recvfrom:53,reuseaddr,fork tcp:localhost:8053
对于 letsencrypt-remote,您需要添加 –dns 选项
% letsencrypt-remote --dns example.com www.example.com
它将首先尝试 HTTP 挑战,如果失败,将尝试 DNS 挑战。
变更日志
0.7.0 - 2016-12-30
更名为 certsling。 [fschulze]
在 verify_domains 中使用对称差集。这可以捕获域名中由于拼写错误和其他一些情况导致的问题。 [solidgoldbomb]
更新 verify_crt 中检查的发行者名称列表。 [solidgoldbomb (Stacey Sheldon)]
更详细的错误报告。 [fschulze]
要求同意 letsencrypt 的使用条款并允许更新注册。 [fschulze]
0.6.0 - 2016-05-09
升级到新的 X3 权威机构。 [fschulze]
0.5.0 - 2016-02-12
使用 -s 选项允许选择 letsencrypt.org 预发布服务器。 [fschulze]
0.4.1 - 2016-01-29
修复 -chained.crt 文件未更新的问题。 [fschulze]
0.4.0 - 2016-01-12
初始发布 [fschulze]
项目详情
letsencrypt-remote-0.7.0.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | caf360706691819a85b85c00b7015643621f0f6db414219c8b516aa869007992 |
|
MD5 | 442123bd5348f6049a76425eb6c4898d |
|
BLAKE2b-256 | 71a586461f80d43b90a33e599aff3097a3e2481b7556407e121b64b96ac1c087 |