一个小型的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从浏览器获取URL   JRMP连接建立期间发生java错误   SpringJava。lang.NoClassDefFoundError:org/springframework/beans/factory/BeanNameAware   垃圾收集如何在Java中(有效地)删除最终数组   当您不拥有模型时,java实现MVP?   java Eclipse无法编译粘贴的代码   java一个单元如何测试非确定性加密函数?   java捕获错误消息并显示在控制台(IDE)中   java如何减少完整GC的数量?   java生成axis2 Web服务客户端jar   java列表<List<Integer>>到2D数组的转换(int[]   java安全。getString(mContext.getContentResolver(),“bluetooth_address”)在Android O中返回null   java如何从TCP数据包中获取HTTP正文   base64中带有内联附件的java提取电子邮件正文   java如何使用SQLite在RecyclerView中动态添加按钮