2013-04-26 18 views
19

私はPFX証明書からPEM証明書を作成し、それを検証したかったのです。 しかし、私はこの問題に遭遇し、いくつかの答えを見つけようとしましたが、私はそれを修正しなかったので、修正する方法はわかりません。 アドバイスをお願いできますか? ありがとうございます。openssl verify - 深さ0のルックアップ20:ローカル発行者証明書を取得できません

C:\OpenSSL-Win32\bin>set OPENSSL_CONF=C:\OpenSSL-Win32\bin\openssl.cfg 

C:\OpenSSL-Win32\bin>openssl 
OpenSSL> verify C:\mycert.pem 
C:\mycert.pem: C = CZ, ST = Sprava zakladnich registru, L = "Obec=Praha,Ulice=Na Vapence,PSC=13000", O = 72054506, OU = 4333, CN = tstcawilly.szr.local 
error 20 at 0 depth lookup:unable to get local issuer certificate 
error in verify 
OpenSSL> 
OpenSSL> verify -CAfile C:\mycert.pem C:\mycert.pem 
C:\mycert.pem: C = CZ, ST = Sprava zakladnich registru, L = "Obec=Praha,Ulice=Na Vapence,PSC=13000", O = 72054506, OU = 4333, CN = tstcawilly.szr.local 
error 20 at 0 depth lookup:unable to get local issuer certificate 
error in verify 
OpenSSL> 
+0

私たちに発行され、Tomcatサーバーにインストールされた新しい証明書と同じ問題がここにあります。 –

答えて

14

のOpenSSL> -CAfile C検証:\ MYCERT.PEM C:\ MYCERT.PEM

閉じます。 -CAfileというCAのルート証明書を追加する必要があります。エンドエンティティ証明書ではありません。ような何か:中間証明書がある場合

openssl verify -CAfile C:\ca-cert.pem C:\mycert.pem 

はまた、それはmycert.pemに追加する必要があります。したがって、実際にはmycert.pemには2つ(またはそれ以上)の証明書(1つではなく)があります。

有効なチェーンを構築するために必要な証明書をすべてmycert.pemに追加すると、"which directory"問題が解決されます。 PKIのよく知られた問題です。基本的に、クライアント(私のような)は途中の証明書を紛失する場所を知りません。

+0

自己署名証明書の場合は、自己署名証明書とCA証明書とエンティティ証明書の両方ではありませんか? –

+0

@WilburWhateley - いいえ、基本制約と 'CA:FALSE'を設定する必要があります。 'CA:TRUE'は設定できません。 CA属性が真である場合、エンドエンティティ証明書は他の証明書を作成する可能性があります。 – jww

+1

自己署名では不可能なのですか?定かでない。この場合は1つの証明書しかないので、そうですか?したがって、自己署名はCAにはなり得ず、CAなしでは証明できません。欠落しているものがあるのか​​、それとも一般にSSLの設計が悪いのでしょうか。 –

関連する問題