4

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

ファイルの生成で何か問題がありましたか?

4

1 に答える 1

4

設定した内容を要約します。

  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によって署名された証明書が作成され、それ自体が自己署名されます。

于 2009-09-29T22:23:22.280 に答える