web-dev-qa-db-ja.com

Openssl:エラー「証明書チェーン内の自己署名証明書」

サーバー証明書(自己署名)を検証するためにopenssl APIを使用すると、次のエラーが発生しました:

深さ1のルックアップでエラー19:証明書チェーンの自己署名証明書

Openssl ドキュメント に従って、このエラー(19)は

「X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN:証明書チェーン内の自己署名証明書-信頼できない証明書を使用して証明書チェーンを構築できましたが、ルートがローカルに見つかりませんでした。」

なぜこのエラーが発生するのですか?サーバー証明書に問題はありますか?

20
Lunar Mushrooms

自己署名の証明書があるため、デフォルトではnon-trustedであるため、OpenSSLからエラーが発生します。 man-in-the-middle攻撃 によりこのシナリオも発生する可能性があるため、この警告は実際には良いことです。

これを解決するには、信頼できるサーバーとしてインストールする必要があります。信頼されていないCAによって署名されている場合は、そのCAの証明書もインストールする必要があります。

自己署名証明書のインストールについて このリンク をご覧ください。

12
Eitan T

証明書チェーンを確認するためのワンライナーは次のとおりです。

openssl verify -verbose -x509_strict -CAfile ca.pem cert_chain.pem

これは、CAをどこにもインストールする必要はありません。

詳細については、 SSL証明書チェーンバンドルの仕組み を参照してください。

9
Vadzim

エラーの解決策は、コードの先頭に次の行を追加することです。

process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
1
lalithsagar