Firefox 59が.dev virtualhostで自己署名SSL証明書を受け入れないように修正する方法


20

私のローカルApache環境では、開発にSSLを必要とするサイトがあるため、自己署名証明書を使用しています。ローカルサイトはこれまでFirefoxとChromeで正常に機能していましたが、Firefoxをバージョン59に更新した後、セキュリティ例外を受け入れることができません(Chromeでは自己署名証明書は引き続き機能します)。

Firefoxでは、ブロックされたページに次の追加情報が表示されます。

...無効なセキュリティ証明書を使用しています。証明書は自己署名されているため、信頼されていません。エラーコード:SEC_ERROR_UNKNOWN_ISSUER

以前のようにここで例外を許可するオプションはありませんが、[証明書]の下の[Firefox設定]に移動し、[サーバー]タブでローカルドメインの例外を追加しました。次に、証明書は正しいローカルサーバー名にリストされ、詳細には、発行者と発行者が同じであるという有効な期間の証明書設定が表示されます。

FF 59で同様の問題が発生している、または自己署名証明書をローカルで再び機能させるために何を試すべきか手掛かりを持っている人はいますか?


編集:FF 59リリースノートにはこれについての言及はありませんが、新しいバージョンの何かにより、*。devドメイン上のすべてのローカル仮想ホストが自動的にhttps接続を確立しようとします(つまり、すべてのhttp * .devのリクエストは自動的にhttps URLに送信されます)。たぶん、この動作についての何かが私の実際のhttps仮想ホストでこれらの問題を引き起こしているものでもあります。


1
私の推測では、Firefoxは最近のいくつかのリリースで徐々に要件を厳しくしているため、自己署名証明書のCAが必要になると思います。ただし、Let's Encryptを使用すると、自己署名証明書を使用する必要がなくなります。
Simon Greenwood

推測したくありませんが、@ SimonGreenwoodは正しいと思います。しかし通常、Firefoxは新しいオプションをデフォルトとして設定するだけで、設定を編集できます。プライバシー設定を確認してください。

@Brocoプライバシー設定ではなく、セキュリティ設定にある場合。上で述べたように、私はセキュリティ例外を追加しましたが、Firefoxはまだ発行者が不明であるため、証明書を検証できないと主張しています。
kontur 2018年

@kontur私にとってのリンクはabout:preferences#privacyでプライバシーとセキュリティの両方を設定するため、私はプライバシーについて述べました。バグとして投稿することを検討してください。

1
@SimonGreenwoodローカル接続で暗号化しようとしない理由はたくさんあります。設定しようとは思わないでしょう。
Jon

回答:


15

これがどのように正確に組み合わされるかについてはまだ完全には明確ではありませんが、この回答で 指摘されているように、.devドメインは公式のTLDです。そのため、ブラウザは何らかのHSTS動作を強制し、https接続を強制するようです。それらのTLDについては、私の自己署名証明書がFirefoxで受け入れられなくなったようです。使用する仮想ホストを.test変更すると、自己署名証明書の内容をまったく変更する必要なく、問題が解決しました。

Firefoxでは、HSTSの動作が、SSLを介して提供するように設定していない仮想ホストでSSLを強制するようだったため、Firefoxでも非SSL仮想ホストが今日バージョン59以降で動作したことは注目に値します。Chromeではこれがまだ機能していましたが、いずれにしても、現在公式に使用されている.devTLD から移行することで多くの頭痛の種を解決できます。


1
はい、.devしばらくの間有効なTLDなので、内部リソースの名前に使用しないでください。他の名前についても同じです。他の誰も使用しないと思われる名前は使用しないでください。RFC2606で参照されているテスト名を使用するか、真のドメイン名をどこかに登録し、int.example.comまたはのようなサブドメインを使用して、dev.example.comすべての内部名に接尾辞を付けます。これで、衝突や問題が発生することはありません(毎年ドメイン名を更新することを忘れない限り)
Patrick Mevzek


1
リンクをありがとう。そこに記載されているタイムラインは完全には揃っていませんが、おそらく作者が開発プレビューなどについて話しました。私が今知っていることを考えると、特に.devドメインのSSLエラーに関して、ブラウザベンダーが追加のデバッグ情報を追加しない理由を確認するのは本当に難しいです。TLDであることがわからない場合は、これが問題であると推測することはできません。
kontur 2018年

12

これを回避する簡単な方法があります。

  1. に行く about:config
  2. 「network.stricttransportsecurity.preloadlist」を検索します。
  3. に設定しfalseます。

警告:これによりHSTSが完全に無効になります。この方法の欠点についての議論については、この回答のコメントをご覧ください。私は個人的には利益がリスクを上回ると思いますが、あなたはあなた自身の安全に対して責任があります。

ここに画像の説明を入力してください


4
この設定は、自分のWebサイトだけでなく、アクセスするすべてのWebサイトに適用されるため、非常に悪い考えです。セキュリティを低下させています。
Patrick Mevzek 2018年

同意しません。HSTSは比較的新しいものです。過去20年間、これがなくても問題はありませんでした。そのため、これを無効にするとセキュリティに非常に悪影響を及ぼすと言っても過言ではありません。第二に、それが悪い考えであるとしても、開発サーバーを引き続き稼働させたい場合、開発環境への本当に長い変更を伴わない他のオプションはありません。
アンディマーサー

1
このようなソリューション:security.stackexchange.com/a/154176は、すべてではなく、少なくとも1つのサイトにのみ影響します。
Patrick Mevzek 2018年

1
私が知っているようにこれは良さそうな見方ですが、年をとるにつれて、「ベストプラクティス」や「間違った」などのことは柔軟であり、時間とともに変化することに気付くでしょう。人々が現在「間違っている」と考えていることは、何年もの間間違っているとは考えられていなかったし、将来もそうならないかもしれない。この特定の議論に関しては、私たちは同意しないことに同意する必要があります。
アンディマーサー

1
この修正のおかげで、Firefox 59.0.1(およびFirefox Dev Edition 60)でうまく機能します。現在の.devプロジェクトは最終的に別のTLDサフィックスに移動されますが、今のところ、これはローカル開発を停止するのに役立ちません。
ジェイクバスマン2018年

4

ページでに設定security.enterprise_roots.enabledするtrueと、about:configこれが解決され、自己署名証明書が開発中に機能するようになりました。

これがデフォルトでオンになっていることのメリットについては、ここで少し議論があります:
security.enterprise_roots.enabledをデフォルトでtrueに設定します

このフラグの目的は、Firefoxがマシン全体のCAルートストアを認証局の有効なソースとして使用できるようにすることですが、これにより、使用する自己署名マルチドメイン証明書があるという私自身の使用例の状況が修正されましたローカルでテストする(subjectAltName's)。Firefox証明書リストに証明書を追加した後でも、これをオンにして初めて、ローカルサイトをロードできるようになりました。


ありがとう、うまくいきました!
informatik01

0

バジリスクWebブラウザで同じ問題がありました。ネットワークプロキシ設定を変更するか、「network.stricttransportsecurity.preloadlist」または「security.enterprise_roots.enabled」フラグを変更しようとしましたが、ブロックされたWebサイトの証明書を追加するための欠落しているボタンを解決できませんでした。これだけが成功ました:

  1. に移動しabout:supportます。
  2. Open Directoryブラウザプロファイルをクリックします。
  3. ブラウザを完全に閉じます。
  4. 上記のディレクトリにある「SiteSecurityServiceState.txt」ファイルを編集します。
  5. ブロックされたHSTSサイトを含む行全体を見つけて削除します。
  6. ファイルを保存し、そのサイトでブラウザを再度開きます。

-3

「Let's Encrypt」に行ってきました

https://letsencrypt.org/

一度に3か月間のみ有効ですが、更新は自動化できます。

備考でわかるように、落とし穴があります。開発ドメインとテストドメインは、dev-www.example.comおよびtest-www.example.comと呼ばれます。本番環境のワイルドカード証明書を使用します。


5
暗号化は、サーバーとドメインが公開されていることに依存していませんか?ローカル仮想ホストでSSLを使用するオプションを探しています。
kontur 2018年

ええ、それは地元の開発をしている人々にとってはうまくいきません。
アンディマーサー

質問はLOCAL DEVについてです

@Pieterは「ローカル開発」と同じですか?それが私たちの仕事だからです。
Gerard H. Pille、2018年

1
@ GerardH.Pilleサーバーがインターネットからアクセスできる場合にのみ、Let's暗号化証明書を生成できます。私の地域開発ではそうではないので、現実的ではありません。足りないものがある場合はお知らせください。
kontur
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.