2017-03-02 1 views

답변

0

인증서와 Context의 개인 키는 Context.load_cert() 또는 Context.load_cert_chain() 방법으로 예를 설정 X509 개체와 개인 키를 직접 해결하려면 낮은 수준의 M2Crypto.m2 API를 사용해야합니다.

예 :

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) 
+0

나는 개인 키가없는 파일 –

+0

509 개체에서하지 않음으로써 X509 개체에서 개인 키를로드 의미, 그것은 단지 대응하는 공개 키가 있습니다. X509 객체로 작업하기 위해서는'M2Crypto.m2'의 하위 레벨 api (예 :'m2.ssl_ctx_use_x509 (ctx.ctx, x509obj.x509)')를 사용하고'm2 .ssl_ctx_use_rsa_privatekey (ctx.ctx, key.rsa)'(또는 다른 키 유형의 경우'm2.ssl_ctx_use_pkey_privatekey (ctx.ctx, key.pkey)'). – mata

+0

감사합니다. 내 질문은 "EVP.PKEY 및 X509 개체를 컨텍스트에로드"해야합니다. –

관련 문제