Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用openssl“打包”Python脚本?_Python_Openssl_Package_Ssl Certificate_Py2exe - Fatal编程技术网

如何使用openssl“打包”Python脚本?

如何使用openssl“打包”Python脚本?,python,openssl,package,ssl-certificate,py2exe,Python,Openssl,Package,Ssl Certificate,Py2exe,我有一个包含X.509 certificates.cer文件的大文件夹,其中一些文件以Base64格式编码,一些文件以DER格式编码。我希望它们都是Base64格式,这样我就可以在文本编辑器中打开它们,查看开始证书和结束证书的内容,而不仅仅是一堆胡言乱语 我做了一些搜索,找到了像和这样的东西,这给了我希望,因为我刚刚编写了一个Python脚本,如: for cert in os.listdir("/path/to/certificate/dir"): openssl x509 -in c

我有一个包含X.509 certificates.cer文件的大文件夹,其中一些文件以Base64格式编码,一些文件以DER格式编码。我希望它们都是Base64格式,这样我就可以在文本编辑器中打开它们,查看开始证书和结束证书的内容,而不仅仅是一堆胡言乱语

我做了一些搜索,找到了像和这样的东西,这给了我希望,因为我刚刚编写了一个Python脚本,如:

for cert in os.listdir("/path/to/certificate/dir"):
    openssl x509 -in cert -out newcert.cer -outform PEM
现在的问题是,我需要其他人在Windows上的多台计算机上执行此操作,而不是要求他们全部下载,我只想简单地将我的脚本打包成一个可执行文件,然后交给这些人运行并转换所有内容

我对打包概念还不熟悉,所以请原谅我问了一些错误或愚蠢的问题,但是有没有办法将openssl库和我的Python脚本打包成一个可执行文件?如果是这样,有人能给我指出正确的道路吗

谢谢

编辑:

我只使用py2exe打包过一次

编辑2:

我还在想怎么做。FWIW,我有一台安装了Python2.7的Windows8机器,还有一个文件夹,其中包含混合了base64或DER编码格式的X.509证书,我想将其全部转换为base64编码。我从Shining Light Productions网站下载了Win64OpenSSL_Light-1_0_1f.exe。我安装了它,导航到创建的目录和bin文件夹,其中有openssl.exe命令。然后,在命令提示符下,我键入:

openssl x509 -in INPUT.cer -out OUTPUT.cer -outform PEM
我得到了一个错误:

unable to load certificate
4716:error:blahblah:PEM routines:PEM_read_bio:no start line:.\crypto\pem\pem_lib.c:703 Expecting: TRUSTED CERTIFICATE
INPUT.cer采用DER编码。我知道证书不受信任,但我现在并不真正关心这一点,我不想将每个证书都安装到我的受信任证书存储中。如果可能的话,我只想把它转换成Base64。换句话说,我想自动打开每个.cer文件,转到“详细信息”选项卡,单击“复制到文件”,完成导出向导并选择将其导出为Base64编码

编辑3:

好吧,帮了我很大的忙。我得到了工作的转换。耶。现在,我仍然需要弄清楚如何将这个OpenSSL与我的py2exe打包,以便可以反复运行该命令

编辑4:

这是我的setup.py文件


我通常运行py2exe setup.py,它创建dist和build文件夹。它将所有内容打包,并创建一个我可以运行的myscript.exe。我需要做什么才能让它包含OpenSSL二进制文件?

也许我遗漏了什么。与其打包OpenSSL,为什么不打包您已转换为PEM的证书呢?@noloader:谢谢您的评论。我的情况是,我的其他同事在他们的机器上有许多不同的证书,所以我尝试部署一个脚本,将它们全部转换为base64。我不一定知道他们有什么。
from distutils.core import setup
import py2exe
from glob import glob
import sys

data_files = [("Microsoft.VC90.CRT", glob(r'C:\Windows\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.1_none_e163563597edeada\*.*'))]


sys.path.append("C:\\Windows\\WinSxS\\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.1_none_e163563597edeada")

setup(
    data_files = data_files,
    console=['myscript.py']
)