不正なOpenSSL証明書
-
05-07-2019 - |
質問
私は偽のCAを作成し、stunnelで使用する証明書に署名しようとしています(OpenSSLルーチンを呼び出しているようですので、おそらく支援するプログラムを知る必要はありません:)。ただし、stunnelは正しいキーで署名されていないという証明書を拒否し続けます!
これは、OpenSSLでキーと証明書を生成する方法です。
openssl genrsa -out ca_key.pem 1024
openssl req -config ./root2.cfg -new -sha1 -x509 -key ca_key.pem -out ca_cert.pem -subj "/CN=blah.blah.com/OU=Dev blah CA/C=CA/ST=blah/L=blah/O=Blah Software"
openssl genrsa -out MPS_key.pem 1024
openssl req -config ./MPS2.cfg -new -sha1 -key MPS_key.pem -out MPS_cert_req.pem -subj "/CN=blah.blah.com/OU=blah Certificate/C=CA/ST=blah/L=blah/O=Blah Software"
openssl x509 -req -in MPS_cert_req.pem -signkey ca_key.pem -out MPS_cert.pem -extensions MPS_ext
次に、stunnel.confに次のエントリがあります:
CAfile = ca_cert.pem
key = MPS_key.pem
cert = MPS_cert.pem
stunnelを起動しようとすると、一般的なOpenSSLの「キーが証明書と一致しません」というメッセージが表示されます。エラー:
2009.09.09 16:36:04 LOG3[492:172]: SSL_CTX_use_RSAPrivateKey_file: B080074: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch
ファイルの生成中に何か間違ったことをしましたか
解決
設定内容を要約します:
- 「CA」があります;自己署名された証明書。
- 自己署名されたMPS_certがあります。
- CAキーを使用してMPS_certに署名しました。
OpenSSLのx509コマンドのリファレンス( http://openssl.org/docsを参照した場合/apps/x509.html )-signkeyパラメーターは、指定された秘密鍵で提供された証明書に自己署名するようOpenSSLに指示することがわかります。これはあなたが望むものではありませんではありません。
やりたいことは、自己署名CAを作成し、それを使用してCSRに署名し、有効な証明書を生成することです。
openssl verify ca_cert.pem
ca_cert.pem: /CN=blah.blah.com/OU=Dev blah CA/C=CA/ST=blah/L=blah/O=Blah Software
error 18 at 0 depth lookup:self signed certificate
OK
openssl verify MPS_cert.pem
MPS_cert.pem: /CN=blah.blah.com/OU=blah Certificate/C=CA/ST=blah/L=blah/O=Blah Software
error 18 at 0 depth lookup:self signed certificate
OK
関連するオプションは-CA、-CAkey、および-set_serialです
openssl x509 -CA ca_cert.pem -CAkey ca_key.pem -set_serial 1 -req -in MPS_cert_req.pem -out MPS_cert2.pem -days 365
これにより、CAによって署名された証明書が生成され、それ自体が自己署名されます。
所属していません StackOverflow