web-dev-qa-db-ja.com

opensslがローカル発行者証明書Debianを取得できません

Opensslで証明書を確認できません

openssl verify cert.pem 

次のようなものを取得します。

cert.pem:/ C = PL/O = DATA
深さ0のルックアップでエラー20:ローカル発行者証明書を取得できません

Centos上のマシンからの同じ証明書-正しく検証されました。

Debian:squeeze/sid

CA ROOTに問題がありますか? opensslヘルプを更新しますか?

9
0chi0

ほぼすべての人からのすべてを信頼するブラウザとは異なり、OpenSSLはデフォルトでは何も信頼しません。

信頼すべきものを決定するのはあなた次第です。 OpenSSLを使用する場合は、何かを指定する必要があります。信頼する証明書または証明書のリストです。

ディレクトリ/etc/ssl/certsには多くの証明書が含まれています。そのようなディレクトリを使用すると、ほとんどすべてを検証できます。

openssl verify -CApath /etc/ssl/certs cert.pem

信頼できる証明書の数を1つ、2つ、または最小限に減らすことをお勧めします。

8
user2350426

発行された証明書は明らかにpemに含まれていないため、CA証明書を指定する必要があります(これは可能ですが)。

openssl verify -CAfile your_ca_cert_file cert.pem

CentOSでエラーが表示されない場合は、CA証明書があり、opensslはそれを使用してcert.pemを正常に検証できます。

7
VF_

サーバーでCAを信頼する必要があります。たとえば、証明書がgoaddayからのものである場合、次のコマンドを実行します。

cd /tmp
Sudo wget -O Gd_intermediate.crt https://certs.godaddy.com/repository/Gd_intermediate.crt
Sudo cp /tmp/Gd_intermediate.crt /usr/local/share/ca-certificates/Gd_intermediate.crt
Sudo update-ca-certificates

これらのコマンドを実行した後、証明書を検証する必要があります。

openssl verify cert.pem 
1
user896993