固执己见的letsencrypt acme客户端通过ssh端口转发。

letsencrypt-remote的Python项目详细描述


LetsEncrypt遥控器

警告

letsencrypt remote已重命名为certsling。 安装该软件包以获取进一步的更新。

通过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

在第一次运行时,系统会询问您是否要创建一个user.key,用于使用letsencrypt进行授权。

之后,将创建选定域的挑战,并在端口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转发到端口8053上的tcp:

# 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中使用对称差分。这会捕获由于 域名和其他一些情况下的打字错误。 [固体炸弹]
  • 更新签入的颁发者名称列表verify_crt。 [固体炸弹(斯泰西·谢尔顿)]
  • 更详细的错误报告。 [fschulze]
  • 要求同意LetsEncrypt的使用条款并允许更新注册。 [fschulze]

0.6.0-2016-05-09

  • 升级至新的x3权限。 [fschulze]

0.5.0-2016年2月12日

  • 允许使用-s选项选择letsencrypt.org登台服务器。 [fschulze]

0.4.1-2016年1月29日

  • 修复-chained.crt文件未更新的问题。 [fschulze]

0.4.0-2016年1月12日

  • 初次发行 [fschulze]

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java GridBagLayout不填充区域   java Memozied Fibonacci未运行与常规Fibonacci解决方案   Java Web启动未启动问题   Java中异常和if-then的区别   java从命令提示符运行批处理文件获取错误   socket在Java中验证SSL证书的公共名称   如何在JAVA中检查字符串数组中的相等字   用java语言将音频文件转换成文本文件的语音识别   java为什么foo(1,2,3)没有传递给varargs方法foo(对象…)作为整数[]   java通过蓝牙将奇怪的数据从Arduino传输到Android   java ContainerRequestFilter获取空entitystream   java如何从安卓 studio中删除不兼容类型错误   基本Java错误   在Spring引导中使用REST API时发生java错误   javascript通过从SQL查询派生的URL打开页面