一个小型的acme(让我们加密)python 2&3客户机库,具有最小的依赖性

certsign的Python项目详细描述


一个小型的ACMEpython 2&3客户机库,具有最小的依赖性。顶点是 由Let’s Encrypt发起的域证书验证和签名协议。 这个包被用作一个库,还附带了命令行脚本。

安装

您可以选择将其安装在用户的主目录或系统目录中。

这个包取决于路径中有openssl可执行文件。

使用pip

要使用pipPyPI安装它,请调用:

pip install certsign

您还可以使用以下命令从代码签出处安装它:

pip install .

安装到用户主目录

使用pip,您可以使用--user选项将其安装到用户的主目录:

pip install --user certsign

如果安装到Linux上的用户目录,$HOME/.local/bin应该在 $PATH-变量。在linux上,您可以将以下内容添加到.profile.bashrc 在主目录中,如果路径中不存在$HOME/.local/bin

# set PATH so it includes user's private .local/bin if it exists
if[ -d "$HOME/.local/bin"];thenPATH="$HOME/.local/bin:$PATH"fi

对于macos/osx,脚本的位置和将其添加到路径的方法是不同的 和Windows。

用法

作为图书馆

签署证书签名请求(CSR)

这是此库的主要用途:

fromcertsignimportclientaccount_key='acme_directory_account.key'csr_file='your_domain.csr'challenges_path='/path/served/by/your/http/server'account_email='you@example.com'signed_cert=client.sign_csr(account_key,csr_file,challenges_path,account_email=account_email)

创建私钥和CSR
fromcertsignimportcryptoprivkey_path='/tmp/privkey.pem'csr_path='/tmp/example.com.csr'privkey=crypto.create_private_key(bits=2048)withopen(privkey_path,'w')asf:f.write(privkey.encode('utf-8'))csr=crypto.create_csr(privkey_path,['example.com','www.example.com'],openssl_conf='/etc/ssl/openssl.cnf')withopen(csr_path,'w')asf:f.write(csr.encode('utf-8'))

命令行

证书签名

用于签署证书签名请求(CSR):

certsign --account-key /path/to/account/key --csr /path/to/domain.csr \
  --challenge-dir /path/served/by/your/http/server \
  --account-email you@example.com

证书签名工具

创建私钥:

certsign-tool privkey --bits=4096 --out=/path/to/privkey.pem

创建企业社会责任:

certsign-tool csr --privkey=/path/to/privkey.pem \
  --out=/path/to/example.com.csr example.com www.example.com

查看刚刚创建的CSR:

certsign-tool view /path/to/example.com.csr

证书签名服务器

一个简单的服务器来响应acme挑战:

certsign-server --challenge-dir /path/served/by/your/http/server \
        --addr localhost \
        --port 8000 \
        --pidfile /tmp/certsign.pid &

完成后终止服务器:

if[ -f /tmp/certsign.pid ];then
        pkill -F /tmp/certsign.pid
fi

开发

建议使用pyvenv和python 2创建python 3虚拟环境 使用virtualenv的虚拟环境。

转到此项目的根目录(setup.py所在的位置)并运行以下命令:

  • 对于python 3:pyvenv venv-certsign-py3source venv-certsign-py3/bin/activate激活。
  • 对于python 2:virtualenv venv-certsign-py2source venv-certsign-py2/bin/activate激活。

使用以下命令(带方括号)设置开发环境:

pip install -e .[dev]

在当前环境中运行测试:

python setup.py test

要为多个python版本运行测试,请执行以下操作:

tox

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

推荐PyPI第三方库


热门话题
java如何在href中将struts2文本字段的值作为参数传递?   java检查对象属性是否为空的最佳方法是什么?   java通过Maven使用Junit类别运行Cucumber测试   java如何在selenium Webdriver(Mac)中使用Robot类上传多个文件?   如何用python绘制图形或将python转换为java和Matlab?   java Osgi捆绑包更新和ResourceBundle   java使用流api将流<@Nullable T>转换为流<@NonNull T>   java中EXCEL的平台无关连接字符串   JavaFX中的java表   java Jetty线程池和sun。HttpServer会话   JPA存储库bean的java Spring注入无法工作NullPointerException   java从另一个Kubernetes作业触发Kubernetes   我的java netbeans抽奖计划需要帮助吗   泛型中的java有界类型无法扩展另一个有界类型   如果混合使用全局构建和概要文件构建,java cxfcodegenplugin会生成错误代码   封装SQL平台之间差异的java策略?