另一个简单的方法是encrypt/acme客户端
le-client的Python项目详细描述
这是另一个acme/让我们加密客户端。 它的灵感来自Acme Tiny,但做事方式不同。
要求
- 客户端是用python 3编写的。 目前它与Python2.x不兼容。
- 不依赖任何第三方 python模块。代码应该运行良好 一个光秃秃的python设置,没有来自pypi的任何东西。
- 您需要openssl可用的命令行可执行文件 用于PATH。它是用来做钥匙和证书的 请求解析。
功能和限制
对服务器或软件一无所知。 它的唯一目的是获得一个已签名的证书。
目前,唯一支持的挑战类型是 http-01(网络根目录)。
不需要任何特权。
它需要访问证书请求,并写入 访问/.well-known/acme-challenge/并可以输出 文件或标准输出上获得的证书。
它可以处理本地帐户密钥文件, 或者可以使用特殊的远程服务 请求。
这就是我写自己客户的主要原因: 我不想保留帐户的私钥 在不受信任的机器上。
目前,它只支持EC-256帐户密钥。 很容易添加其他曲线大小和RSA支持, 但我很懒。
它可以作为一个独立的 命令行实用程序,或作为一个简单的python库。
远程帐户密钥协议
此客户端支持一种特殊的操作模式,其中 它没有本地帐户私钥,但会询问 一个远程服务来签署它需要的任何有效负载。
远程服务位于单个url上,服务于 通过https。要验证客户端,cli当前 仅支持HTTP基本身份验证。
要签名,我们将post请求发送到给定的url, 追加nonce查询参数,并发送 有效载荷作为柱体。我们希望服务器 要回答200ok,返回一个jws作为响应。
这就是整个协议的描述。
许可证
版权所有(c)2016,Aleksey Zhukov
此程序是免费软件:您可以重新分发和/或修改 根据由 自由软件基金会,或者许可证的第3版,或者 (由您选择)任何更高版本。
有关详细信息,请参见LICENSE文件。