0
Ich weiß nicht, wie X509 privaten Schlüssel in M2Crypto.SSL.Context laden.M2Crypto laden privaten Schlüssel von X509 Objekt
Verwendet es die Funktion M2Crypto.X509.X509_Store.add_X509?
Dank
Ich weiß nicht, wie X509 privaten Schlüssel in M2Crypto.SSL.Context laden.M2Crypto laden privaten Schlüssel von X509 Objekt
Verwendet es die Funktion M2Crypto.X509.X509_Store.add_X509?
Dank
Das Zertifikat und der private Schlüssel eines Context
werden durch die Context.load_cert()
oder Context.load_cert_chain()
Methoden setzen, zum Beispiel:
from M2Crypto import SSL
ctx = SSL.Context()
ctx.load_cert('/path/to/certificate.pem', '/path/to/privkey.pem')
Edit: Um direkt mit X509 Objekten und privaten Schlüsseln arbeiten Sie müssen die Low-Level-API M2Crypto.m2
verwenden.
Beispiel:
from M2Crypto import SSL, X509, EVP, RSA, m2
ctx = SSL.Context()
x509 = X509.load_cert('/path/to/cert.pem')
evp = EVP.PKey()
rsa = RSA.load_key('/path/to/privkey.pem')
evp.assign_rsa(rsa)
# or instantiate evp key differently, e.g. directly from file:
# evp = EVP.load_key('/path/to/privatekey.pem')
m2.ssl_ctx_use_x509(ctx.ctx, x509.x509)
m2.ssl_ctx_use_pkey_privkey(ctx.ctx, evp.pkey)
# rsa key could be used directly instead:
# m2.ssl_ctx_use_rsa_privkey(ctx.ctx, rsa.rsa)
# verify everything went ok
m2.ssl_ctx_check_privkey(ctx.ctx)
I private Schlüssel aus X509 Objekt bedeuten laden nicht aus der Datei –
Ein X509-Objekt hat keinen privaten Schlüssel, es hat nur den entsprechenden öffentlichen Schlüssel. Um mit einem X509-Objekt zu arbeiten, müssen Sie die Low-Level-API von 'M2Crypto.m2' verwenden, zB:' m2.ssl_ctx_use_x509 (ctx.ctx, x509obj.x509) 'und dann den entsprechenden privaten Schlüssel mit' m2 setzen .ssl_ctx_use_rsa_privatekey (ctx.ctx, key.rsa) '(oder' m2.ssl_ctx_use_pkey_privatekey (ctx.ctx, key.pkey) 'für andere Schlüsseltypen). – mata
danke dir, mata. Meine Frage sollte "EVP.PKEY und X509 Objekte in den Kontext laden". –