python - 如何使用 Python 创建 JKS 或 P12 keystore

标签 python bash keystore jks p12

我正在开发一个 Python 3 脚本,除其他外,在某些时候它需要创建一个 .JKS 或 .P12 keystore 。我曾经有一个使用 keytool 的 bash 脚本:

keytool -genkey -keyalg RSA -alias certAlias \
        -keystore keystore.jks -storepass $keyPass \
        -validity 360 -keysize 2048 \
        -noprompt -dname "CN=com.myCompany, OU=ID, O=AwesomeSoft, L=SF, S=CA, C=US" \
        -keypass $keyPass

mv ./keystore.jks src/main/resources/

现在我正在将相同的功能从 bash 脚本移至 python,我遇到了一些问题需要解决,任何指针都将非常受欢迎。您可能会注意到上面的示例适用于 jks,而不是 p12。 ..新版本必须能够,具体取决于调用 certType 之前的变量,创建一个或另一个...或者创建一个 jks 然后将其转换为 p12...我对选项持开放态度..

提前致谢!!

最佳答案

找到我的答案:

import os

certAlias = 'cert'
certAlg = 'RSA'
certSigAlg = 'SHA1withRSA'
certExp = '365'
certKeySize = '2048'
certKeyType = 'PKCS12' # Select PKCS12 or JKS 
certKeyPass = 'password123'
fileName = 'keystore'
dname = 'CN=mySite.com'

#

if certKeyType == "PKCS12":
    fileExt = 'p12' 
elif certKeyType == "JKS":
    fileExt = 'jks' 
certFile = fileName + '.' + fileExt

keytool = 'keytool -genkey -noprompt \
            -alias ' + certAlias + ' \
            -keypass ' + certKeyPass + ' \
            -keyalg ' + certAlg + ' \
            -sigalg ' + certSigAlg + '\
            -validity ' + certExp + ' \
            -dname ' + dname + ' \
            -keysize ' + certKeySize + ' \
            -keystore ' + certFile + ' \
            -storepass '+ certKeyPass +' \
            -storetype  ' + certKeyType 

os.system(keytool)

我做到了这一点并且有效,但我将尝试添加更多逻辑......希望它对任何人都有帮助。

关于python - 如何使用 Python 创建 JKS 或 P12 keystore ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62901667/

相关文章:

python - 如何分割 'A/B/C(D/E)'格式的字符串?

python - Cloud SQL 套接字打开失败,错误为 : No such file or directory

bash - bash脚本上的错误处理

sql - 从 Oracle 查询中提取表引用

tomcat - 在 Tomcat 中恢复自签名证书

python - Flask 函数装饰器在定义时和调用时运行?

python - 在符合条件的数据框中查找第一行

bash - 即使直接在服务器上执行,BitBucket Pipelines也不执行整个Shell脚本

Android:管理 keystore -> 在机器之间移动

java - ftps 服务器错误 GnuTLS 错误 -89 : Public key signature verification has failed