【问题标题】:Create openVPN Certificate with python使用 python 创建 openVPN 证书
【发布时间】:2010-09-11 21:30:13
【问题描述】:

你们知道可以生成openVPN证书的python“脚本”吗? 我需要它来将它与我的 django 项目集成...

谢谢。

【问题讨论】:

    标签: python certificate openvpn


    【解决方案1】:

    您是否设置了所需的PKI,即您是否建立了自己的证书颁发机构?如果是这样,那么将目录更改为 easy-rsa(请参阅我刚刚指出的文档以了解如何在各种平台中找到该目录)并使用 Python 的 subprocess 为感兴趣的客户运行 build-key 可能是最简单的。

    【讨论】:

    • subprocess.check_call(['./build-key', 'client1'], cwd='/etc/openvpn/easy-rsa'); check_call documentation
    • @Cristian,是的,但是 /etc/openvpn/easy-rsa 不起作用,例如在 Windows 上:在我的回答中,我给出了解释 easy-rsa 目录在各种平台上的位置的文档的 URL。另外,引用文档,“请注意,搜索可执行文件时不考虑此目录,因此您不能指定程序相对于 cwd 的路径。” -- 所以./build-key 会失败除非你之前已经完成了os.chdireasy-rsa (在这种情况下你不需要cwd,它变得无害但多余;-)。
    • @Alex Martelli:您对路径的看法是正确的,但这只是一个示例,而不是完整的答案。这就是为什么我评论你的答案而不是添加另一个答案。也许我应该更清楚这只是一个例子。关于cwd 参数subprocess.check_call(['./update-projects-for-satchmo.sh'], cwd='/home/ciupicri/work') 在python-2.6.4-27.fc13.x86_64 上对我来说很好。
    • 感谢答案...我使用 ubuntu ...如果我可以使用 ./build-key w/o 密码脚本,它会更容易,但我需要使用 ./build-key-通过 ... 或者我可以提供密码作为 ./build-key 的参数? ./build-key 脚本不是以交互方式接受“参数”吗?
    • @void, build-key 用于正常情况(您不需要密码,因为您将私钥保密)。如果您确实需要密码,那么您需要build-key-pass,并且您可能希望使用pexpect(或wexpect,如果在Windows 上;-)来模拟终端,以便您可以输入密码(subprocess 不模拟终端)。
    【解决方案2】:

    查看django-x509的源码。

    特别是base x509 model_generate 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-27
      • 2023-04-09
      • 2018-06-05
      相关资源
      最近更新 更多