【发布时间】:2010-09-11 21:30:13
【问题描述】:
你们知道可以生成openVPN证书的python“脚本”吗? 我需要它来将它与我的 django 项目集成...
谢谢。
【问题讨论】:
标签: python certificate openvpn
你们知道可以生成openVPN证书的python“脚本”吗? 我需要它来将它与我的 django 项目集成...
谢谢。
【问题讨论】:
标签: python certificate openvpn
您是否设置了所需的PKI,即您是否建立了自己的证书颁发机构?如果是这样,那么将目录更改为 easy-rsa(请参阅我刚刚指出的文档以了解如何在各种平台中找到该目录)并使用 Python 的 subprocess 为感兴趣的客户运行 build-key 可能是最简单的。
【讨论】:
subprocess.check_call(['./build-key', 'client1'], cwd='/etc/openvpn/easy-rsa'); check_call documentation
/etc/openvpn/easy-rsa 不起作用,例如在 Windows 上:在我的回答中,我给出了解释 easy-rsa 目录在各种平台上的位置的文档的 URL。另外,引用文档,“请注意,搜索可执行文件时不考虑此目录,因此您不能指定程序相对于 cwd 的路径。” -- 所以./build-key 会失败除非你之前已经完成了os.chdir 到easy-rsa (在这种情况下你不需要cwd,它变得无害但多余;-)。
cwd 参数subprocess.check_call(['./update-projects-for-satchmo.sh'], cwd='/home/ciupicri/work') 在python-2.6.4-27.fc13.x86_64 上对我来说很好。
build-key 用于正常情况(您不需要密码,因为您将私钥保密)。如果您确实需要密码,那么您需要build-key-pass,并且您可能希望使用pexpect(或wexpect,如果在Windows 上;-)来模拟终端,以便您可以输入密码(subprocess 不模拟终端)。
查看django-x509的源码。
特别是base x509 model 的_generate 方法。
【讨论】: