あるサーバーでSSLチェーンが失われたことが報告されました。このSSLチェック:
私もこれが問題であることを知っていますしなければならないサーバー自体では解決しますが、時々解決が難しい場合もあります。 (私はサーバー管理者ではありません。)
問題はWindowsのChrome / Mozilla / Edgeです。何があってもウェブサイトの証明書を信頼してください:
ただし、Gnu / Linux展開(DockerのUbuntu 18.04)では、証明書は次のとおりです。いいえ信頼できる:
curl: (60) SSL certificate problem: unable to get local issuer certificate
update-ca-certificates
Globalsignルート証明書のインポートも試みました。update-ca-certificates
この場合、重複証明書が報告されます。とにかく何も動作しません。
再生方法
ドッカーの使用:
docker run -it ubuntu:18.04
# within container:
apt-get update
apt-get -y install curl
curl https://betriebsheft.vog.it # <---- "unable to get local issuer certificate"
Gnu / Linuxにこの証明書を信頼させる方法は?
PS:同じ証明書他のサーバーに正しくデプロイ。
ベストアンサー1
実際の解決策は、サーバーが存在することを確認することですみんな最終エンティティ(サーバー)証明書ではなく、チェーンの証明書です。
サーバー管理者に教えてくださいRFC 5246セクション7.4.2これは明らかに言うこのメッセージはサーバーの証明書を転送します。チェーン顧客に。
curl
管理者が何らかの理由でこれを拒否または実行できない場合、代替案は誤ったハンドシェイクを処理することです。
Curlメーリングリストのメッセージによると:
cURLが中間証明書をサポートしているか(またはサポートしていないか)確認できますか?
はい、そうです。すべてのCA証明書には、ルートまでの証明書チェーンがあります。カールで使用されるCAバンドルには、チェーン全体を含む証明書が必要です。
/daniel.haxx.se
ルートCAとすべての中間証明書をバンドルに追加し、オプションを使用してcurl
それを指すことができる必要があります--cacert <file>
。
ブラウザが機能すると、そのブラウザは正しいCA証明書にアクセスできます。 [証明書]タブ(ブラウザによって異なりますが理解していると確信しています)で、証明書チェーンを確認してください。まず、ルートCAをダブルクリックします。Globalsign ルート CA - G1そして詳細タブ、クリックファイルにコピー...。root.cer
別の名前で保存してください。AlphaSSL CA-SHA256-G2issuing.cer
両方のファイルを1つのファイル(たとえばchain.cer
)にリンクし、それをの引数として使用します-cacert
。
@ABが親切に指摘したように、失われた証明書も見つけることができますここ。
ブラウザはCA証明書をキャッシュするため、正しく動作します。過去のある時点で、サーバー証明書と同じCAによって発行された証明書を使用して適切に設定されたWebサイトに移動した場合、ブラウザはWebサイトをキャッシュします。後で誤って設定されたサイトにアクセスすると、ブラウザはキャッシュ内のCA証明書を使用してチェーンを構築します。すべてが大丈夫だと思いますが、その背後にはサーバーが誤って設定されています。
Windowsでは、IE / EdgeとChromeは同じキャッシュを共有しますが、Firefoxは独自のキャッシュを使用します。
上記に加えて、IE / EdgeとChrome(同じ暗号化スタックを共有するため)は証明書で次の名前を使用します。信頼できる情報へのアクセス。一つあるカード発行会社オプションは、最終エンティティ証明書をダウンロードできるCA証明書のURLを提供します。したがって、これらのブラウザのいずれかが以前のナビゲーションで失われた証明書をキャッシュしない場合でも、必要に応じて証明書を取得できます。 Firefoxはこれを行いませんので、IE / EdgeとChromeが動作しているように見えると、Firefoxに証明書エラーが表示されることがあります。