Как создать хранилище ключей JKS или P12 с Python - PullRequest
0 голосов
/ 14 июля 2020

Я работаю над Python 3 скриптом, который, помимо прочего, в какой-то момент должен создать хранилище ключей .JKS или .P12. У меня есть сценарий bash, в котором для этого использовался keytool:

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, и у меня возникли некоторые проблемы, чтобы понять это out, и любой указатель будет более чем приветствоваться ... вы можете заметить, что приведенный выше пример предназначен для jks, а не для p12 ... более новая версия должна иметь возможность, в зависимости от переменной до вызова certType с созданием той или иной. .. или создать jks, а затем преобразовать его в p12 ... я открыт для вариантов ..

Заранее спасибо !!

1 Ответ

0 голосов
/ 15 июля 2020

Нашел свой ответ:

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)

Я сделал это и работает, но я буду играть, чтобы добавить больше логи c ... надеюсь, это кому-нибудь поможет.

...