一个小型的acme(让我们加密)python 2&3客户机库,具有最小的依赖性
certsign的Python项目详细描述
一个小型的ACMEpython 2&3客户机库,具有最小的依赖性。顶点是 由Let’s Encrypt发起的域证书验证和签名协议。 这个包被用作一个库,还附带了命令行脚本。
安装
您可以选择将其安装在用户的主目录或系统目录中。
这个包取决于路径中有openssl可执行文件。
安装到用户主目录
使用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-py3和 source venv-certsign-py3/bin/activate激活。
- 对于python 2:virtualenv venv-certsign-py2和 source venv-certsign-py2/bin/activate激活。
使用以下命令(带方括号)设置开发环境:
pip install -e .[dev]
在当前环境中运行测试:
python setup.py test
要为多个python版本运行测试,请执行以下操作:
tox