更新された回答:

更新された回答:

私は他のスタックの回答(これに関連する多数の回答があります)の指示に従って、openssl verify次のようにLet's Encrypt証明書を確認するコマンドを作成しました。

openssl verify -show_chain /etc/letsencrypt/live/mail.example.com/chain.pem /etc/letsencrypt/live/mail.example.com/cert.pem 

しかし、エラーのため失敗します。

CN = mail.example.com
error 20 at 0 depth lookup: unable to get local issuer certificate
error /etc/letsencrypt/live/mail.example.com/cert.pem: verification failed
/etc/letsencrypt/live/mail.example.com/chain.pem: OK
Chain:
depth=0: C = US, O = Let's Encrypt, CN = R3 (untrusted)
depth=1: C = US, O = Internet Security Research Group, CN = ISRG Root X1

交換してfullchain.pemchain.pem失敗します。しかし、これらはすべてLet's Encryptが私に配布した証明書です!

私がここで何を見逃しているのでしょうか?

ベストアンサー1

openssl verify -show_chain /etc/letsencrypt/live/mail.example.com/chain.pem /etc/letsencrypt/live/mail.example.com/cert.pem 

このコマンドは無効です。指定されたすべての証明書を互いに独立して確認しようとします。つまり、信頼チェーンを構築せずに最初の証明書を確認します。代わりに、コマンドは次のようにする必要があります。

openssl verify -untrusted chain.pem cert.pem

-untrusted中間証明書を発行します。ルート証明書 ISRG X1 は、最新システムのトラストストアから取得されます。それ以外の場合は、それを使用または-trusted提供する必要があります-CAfile

おすすめ記事