web-dev-qa-db-ja.com

不完全なSSLチェーンをどのように修正しますか

私はGo Daddy SSL証明書をインストールしています。Android以外はどこでも問題なく動作します。

https://www.ssllabs.com/ssltest/analyze.html はチェーンが不完全であると言っています、そして私は スタックオーバーフロー をSSLと読みました間違った順序でチェーンするとAndroidで失敗します。

しかし、どうやってそれを整理するのですか?私のサーバーでは? SSL証明書自体を再入力する必要がありますか? FTPで物事を動かす?

28
Jon

チェーンはcrtファイルにあり、元のSSLは機能していませんでした。

GoDaddyには2つ目の証明書があります - Gd_bundle.crt

この情報をコピーして、サーバーにインストールされているcrtに追加してください。

そのため、サーバー上の元のcrtには1つの証明書があり、その後に同じファイルに3つの証明書があります。これがチェーンです。

私はまだssllabs.comにチェーンインチェーンの問題が含まれていますが、これは問題ではなく、単に出入りするオプションです - によると - -issues-contains-anchor/24566#24566

9
Jon

Zakjanの答えに続いて、Androidウェブビューでjqueryを使用して新しく安全になったサーバーでAJAXリクエストを実行しようとしたときに問題が発生しました。ブラウザではうまくいきましたが、私のアプリではうまくいきませんでした。

私はこのサイトを使いました: https://certificatechain.io/

Comodoから戻ってきた署名付きの.crtファイル(positiveSSL)のテキストを貼り付けたところ、必要なものすべての連結が返されました。私のドメイン+ "chain.crt"として保存しました(下記参照)。

それから、私のApache設定で、私はその特定の仮想ホストのためにこのような何かを入力しました:

SSLEngine On
SSLCertificateFile /etc/ssl/localcerts/example_com.crt
SSLCertificateKeyFile /etc/ssl/localcerts/example.com.key
SSLCACertificateFile /etc/ssl/localcerts/example.com.chain.crt

その後、私のAndroidアプリのWebビューは私のサーバーへのPOSTへのajaxの使用に問題はありませんでした。私は2つの現実のデバイスで試しました。1つは2.3.4を実行し、もう1つは4.somethingを実行しています。そして2.3を実行しているエミュレータで。すべてうまくいった。

これが役に立つことを願っています。

16
Richard

このような問題を防ぐために、証明書から信頼できるルート証明書にすべての証明書を(この順序では排他的に)連結することで、不完全証明書チェーンの問題を手動で解決できます。信頼されたルート証明書は、システムのルート証明書ストアに既に含まれているので、そこにあってはいけません。

あなたは発行者から中間証明書を取得して自分でそれらを連結することができるはずです。ところで、私は手順を自動化するスクリプトを書きました、それは正しく連鎖された証明書の出力を生成するために証明書を取ります。 https://github.com/zakjan/cert-chain-resolver

7
zakjan