web-dev-qa-db-ja.com

Firefoxは証明書チェーンをロードしません

DebianSqueezeでlighttpd/1.4.28 (ssl)を実行しています。 http://startssl.com 証明書を作成しました。すべてのブラウザー(Firefox、Chrome、Opera)で問題なく動作しますが、ユーザーがFirefoxで証明書エラーを報告しています。私はすでにそれを証明書チェーンのロードの失敗に釘付けにしました:

Firefoxでの証明書: http://i.stack.imgur.com/moR5x.png
他のFirefoxでの証明書: http://i.stack.imgur.com/ZVoIu.png (ここに不足しているStartCOM証明書に注意してください)

私はlighttpdに証明書を埋め込むためにこのチュートリアルに従いました: https://forum.startcom.org/viewtopic.php?t=719

私のlighttpd.confの関連部分は次のようになります。

$SERVER["socket"] == ":443" {
        ssl.engine = "enable"
        ssl.ca-file = "/etc/lighttpd/certs/ca-bundle.pem"
        ssl.pemfile = "/etc/lighttpd/certs/www.bisaboard.crt"
}

ca-bundle.pemは次のように作成されました:cat ca.pem sub.class1.server.ca.pem > ca-bundle.pem
ここから関連ファイルを取得しました: http://www.startssl.com/certs/

www.bisaboard.crtは次のように作成されました:cat certificate.pem ssl.key > www.bisaboard.crt
ここで、certificate.pemは私のStartSSL-Class1証明書であり、ssl.keyは私のSSL-Root-Keyです。

2番目のFirefoxが証明書チェーンを正しくロードしない理由を知っていますか?

6
TimWolla

ウェブサーバーが中間証明書を正しく表示していないようです。独自のブラウザで機能する理由は、おそらく自分でローカルにダウンロードしてインストールしたためです。

http://www.startssl.com/certs/ca-bundle.crt ですでに用意されているcaバンドルをダウンロードして、ssl.ca-fileに使用してみませんか。オプション?

3

Firefoxは、証明書チェーン全体の検証に厳しいことで有名であり、チェーン内のすべての証明書を正しく指定していない可能性があります。最近、FirefoxとLighttpdのComodo SSL証明書で同様の問題がありましたが、問題はssl.ca-fileにチェーンを正しくリストしていないことでした。

RFC 2246 によると、送信者の証明書が最初に来る必要があり、後続の各証明書はその前の証明書を直接証明する必要があります。結局、CAルートまでのチェーンに4つの証明書ができました。

certificate_listこれは、X.509v3証明書のシーケンス(チェーン)です。送信者の証明書はリストの最初に来る必要があります。次の各証明書は、その前の証明書を直接証明する必要があります。証明書の検証ではルートキーを個別に配布する必要があるため、ルート認証局を指定する自己署名証明書は、いずれの場合でも検証するためにリモートエンドがすでに所有している必要があるという前提で、オプションでチェーンから省略できます。

1
Armin Sadeghi

昨日証明書が更新された後、私はその問題に遭遇しました。すべてのテストデバイス/ブラウザーは更新された証明書で問題なく動作したため、私は家に帰りました。

今日私はオフィスに来ました、そして私たちの会社/顧客の半分は彼らのブラウザでそのブラウザセキュリティ警告を見ました。

同じ会社でFirefoxESRバージョンを展開したとしても?!

私の解決策は、サーバー上で正しい有効な中間証明書を使用することでした。

StartComが実際に持っているSHA1の問題を完全に忘れていました。

現在のクラス1ドメインで検証されたSHA2中間証明書を取得します(私の場合): https://www.startssl.com/certs/sca.server1.crt 、古いものを置き換えますsub.class1.server。 ca.pemを使用して、Webサーバー(私の側のApache)を再起動すると、すべてのブラウザーで動作します。

0
synthor

これと同じ問題があり(node.jsを使用)、解決策はsub.class1.server.ca.pemファイルをssl.crtファイルに追加することでした。

sub.class1.server.ca.pemの内容をssl.crtにコピーするだけで、一方が他方の下にあり、間にスペースがないことを確認してください。

あなたはそれについてもっと読むことができます ここ

まったく同じような動作で問題が発生しました。一部のFirefoxはチェーンの欠落について不平を言っていましたが、すべてではありませんでした。追加の証明書チェーンパラメーター(およびすべての証明書を次々に含むファイル)をサーバー構成に追加すると、役立つように思われました。私はApache Traffic Serverを自分で実行しています。

そのソリューションは、コメントのリンクでSSLhopperが提案するものでもあります。 http://www.sslshopper.com/ssl-checker.html#hostname=www.bisaboard.de

Lighttpdの設定についてはわかりませんが、中間証明書のチェーンファイルをアナウンスするための追加のパラメータがある可能性があります。

0
Gnomet