В Python с использованием OpenSSL, если у меня есть самоподписанный root ЦС и запрос на подпись сертификата (CSR), как мне тогда создать сертификат из CSR, подписанного моим root ЦС? (я правильно сказал?)
from OpenSSL import crypto, SSL
# create a self-signed root CA cert
rootkey = crypto.PKey()
rootkey.generate_key(crypto.TYPE_RSA, 2048)
rootca = crypto.X509()
rootca.get_subject().CN = "my_root_ca"
rootca.gmtime_adj_notBefore(10)
rootca.gmtime_adj_notAfter(10*365*24*60*60)
rootca.set_issuer(rootca.get_subject())
rootca.set_pubkey(rootkey)
rootca.sign(rootkey, 'sha256')
# create a CSR with a code in CN
csrkey = crypto.PKey()
csrkey.generate_key(crypto.TYPE_RSA, 2048)
csr = crypto.X509Req()
csr.get_subject().CN = '4854996413a0bcffb73b956d63f728d10e6d97bb'
csr.set_pubkey(csrkey)
csr.sign(csrkey, 'sha256')
# save files
open('rootCA.pem', 'wb').write(crypto.dump_certificate(crypto.FILETYPE_PEM, rootca))
open('rootCA.key', 'wb').write(crypto.dump_privatekey(crypto.FILETYPE_PEM, rootkey))
open('verificationCert.csr', 'wb').write(crypto.dump_certificate_request(crypto.FILETYPE_PEM, csr))
Как теперь подписать CSR с root ca в python?
(опять же, извините, если родной язык не верный, Пожалуйста, не стесняйтесь исправлять)
Вот эквивалентная командная строка, которую я пытаюсь повторить в Python:
openssl x509 -req -in verificationCert.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out verificationCert.pem -days 500 -sha256
Спасибо!