質問

私は偽の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

ファイルの生成中に何か間違ったことをしましたか

役に立ちましたか?

解決

設定内容を要約します:

  1. 「CA」があります;自己署名された証明書。
  2. 自己署名されたMPS_certがあります。
  3. 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によって署名された証明書が生成され、それ自体が自己署名されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top