跳转到主要内容

有偏见的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 (12.4 kB 查看散列)

上传时间

由以下支持