X509 certs/M2Crypto.SSL を使用してピア認証を機能させようとしています
クライアント (hostC) でルート CA (発行者 & サブジェクト = ca_hostC) を生成します
この CA を使用してローカルでクライアント証明書に署名します (発行者: ca_hostC、件名: hostC)
hostS で CSR を生成し、それを hostC にコピーし、ステップ 1 のルート CA を使用して署名し、ca_cert と署名付き証明書を hostS に移動します。
コンテキストを生成します:
import M2Crypto.SSL as SSL
ctx = SSL.Context('tlsv1')
ctx.load_cert('x.crt', 'private/x.key')
ctx.load_verify_locations(cafile='ca.crt')
ctx.set_verify ( SSL.verify_peer | SSL.verify_fail_if_no_peer_cert , 0, verify_callback)
私は接続します:
s = SSL.Connection(ctx)
s.connect(server_address)
しかし、クライアントで私は得る
ERROR: 20
unable to get local issuer certificate
ただし、サーバーから受信した証明書の件名と発行者を印刷すると、正しい情報が表示されます。また、証明書は openssl コマンド ライン ユーティリティから検証できます。
何かご意見は??