Debian 6.0 32ビットサーバでSSLを設定できません。私はSSLが比較的新しいので、私と一緒に耐えてください。できるだけ多くの情報を含めています。
注:サーバーのIDと整合性を保護するために、実際のドメイン名が変更されました。
サーバーはnginxを使用して稼働しています。以下のように構成されています。
ssl_certificate /usr/local/nginx/priv/mysite.ca.chained.crt;
ssl_certificate_key /usr/local/nginx/priv/mysite.ca.key;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_verify_depth 2;
説明した方法を使用して証明書をチェーンしました ここ
cat mysite.ca.crt bundle.crt > mysite.ca.chained.crt
ここでmysite.ca.crt
は署名機関によって私に与えられた証明書であり、bundle.crt
は私の署名機関によって私にも送られたCA証明書です。問題は、GlobalSignから直接SSL証明書を購入したのではなく、ホスティングプロバイダであるSinglehopから購入したことです。
証明書はSafariとChromeでは正しく検証されますが、Firefoxでは検証されません。最初の検索で、CAに問題がある可能性があることが明らかになりました。
私は 類似の質問 に対する答えを調べましたが、各証明書がどのような目的を果たしているのかがよくわからないため、解決策を見つけることができませんでした。
私はopensslのs_clientを使って接続をテストし、 同じ質問 と同じ問題を示していると思われる出力を受け取りました。エラーは以下のとおりです。
depth=0 /OU=Domain Control Validated/CN=*.mysite.ca
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 /OU=Domain Control Validated/CN=*.mysite.ca
verify error:num=27:certificate not trusted
verify return:1
Opensslの応答の詳細(証明書と不要な情報は切り捨てられています)は こちら にあります。
私はまた警告を見ます:
No client certificate CA names sent
これが問題である可能性はありますか? nginxがこれらのCA名を送信するようにするにはどうすればいいですか?
GlobalSignから直接ルートCAをダウンロードして問題を解決しようとしたが、同じエラーが出た。私はupdate-ca-certificates
コマンドを使って私のDebianサーバ上のルートCAを更新しましたが、何も変わりませんでした。これは、私のプロバイダから送信されたCAが正しかったことが原因である可能性があります。そのため、証明書が2回チェーンされることになり、役に立ちません。
0 s:/OU=Domain Control Validated/CN=*.mysite.ca
i:/C=BE/O=GlobalSign nv-sa/CN=AlphaSSL CA - SHA256 - G2
1 s:/O=AlphaSSL/CN=AlphaSSL CA - G2
i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
2 s:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
何か試してみることができるのか、あるいは全体を間違って設定しているのかを教えてください。
jwwは正しいです - あなたは間違った中間証明書を参照しています。
SHA256証明書が発行されたので、SHA256中間体が必要になります。あなたはここからそれをつかむことができます: http://secure2.alphassl.com/cacert/gsalphasha2g2r1.crt