Go Daddy SSL証明書がインストールされており、Androidを除くすべての場所で正常に動作します。
https://www.ssllabs.com/ssltest/analyze.html は、チェーンが不完全であり、スタックオーバーフローで、Androidで間違った順序のSSLチェーンが失敗することを読みました。
しかし、どのように整理するのですか?私のサーバーで?SSL証明書自体のキーを再生成する必要がありますか?FTPで物事を移動しますか?
Go Daddy SSL証明書がインストールされており、Androidを除くすべての場所で正常に動作します。
https://www.ssllabs.com/ssltest/analyze.html は、チェーンが不完全であり、スタックオーバーフローで、Androidで間違った順序のSSLチェーンが失敗することを読みました。
しかし、どのように整理するのですか?私のサーバーで?SSL証明書自体のキーを再生成する必要がありますか?FTPで物事を移動しますか?
回答:
zakjanの答えをフォローアップすると、jQueryを使用して、Android Webビューで新しく安全なサーバーで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ビューでは、ajaxを使用してサーバーにPOSTする際に問題は発生しませんでした。2.3.4を実行しているデバイスと、4.somethingを実行しているデバイスの2つの実世界のデバイスで試しました。2.3を実行しているエミュレーターで。すべてが働いた。
これがお役に立てば幸いです。
SSLCACertificateFile
は私が逃したラインだった。最初は、一部のブラウザ/ OSから要求されたときにSSLが機能したが、他のブラウザ/ OSからは機能しなかったため、CAが新しすぎると思いました。decode.link/sslcheckerを使用すると、私の構成が間違っていたことが明らかになり、この回答には修正がありました。ありがとうございました!!
チェーンはcrtファイルにあり、元のSSLは機能していませんでした。
GoDaddyには2番目の証明書-gd_bundle.crtがあります
この情報をコピーして、サーバーにインストールされているcrtに追加します。
したがって、サーバー上の元のcrtには1つの証明書があり、その後は同じファイルに3つの証明書があります。これがチェーンです。
私はまだだssllabs.comにチェーンの問題でアンカーが含まれていますが、これは問題、または除外するだけのオプションではない-による- /security/24561/ssltest-chain-issues -contains-anchor / 24566#24566
証明書のすべての証明書を信頼できるルート証明書(この順序で排他的)に連結して、このような問題を防ぐことにより、不完全な証明書チェーンの問題を手動で解決できます。信頼されたルート証明書はシステムのルート証明書ストアにすでに含まれているため、そこに存在しないようにしてください。
発行者から中間証明書を取得し、それらを自分で連結できる必要があります。ところで、手順を自動化するスクリプトを作成しました。正しく連鎖された証明書の出力を生成するには証明書が必要です。https://github.com/zakjan/cert-chain-resolver
SSLCACertificateFile
ディレクティブを追加し、それが私の権限を与えてくれたCAファイルを指すことでした。単に他の証明書を証明書ファイルに連結しただけでは機能しません。