我正在开发一个 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/