web-dev-qa-db-ja.com

Safari 11で自己署名証明書を受け入れて、Vagrant / Homesteadローカルサイトにアクセスできません

VagrantとHomesteadをインストールして、アプリをローカルでテストしました。 FirefoxとChromeでhttp://mysite.appにアクセスすると、すべてが正常に機能します。ただし、Safariはhttp /非セキュアバージョンのサイトの使用を許可せず、自動的にセキュア(https)バージョンにリダイレクトします。たとえば、http://mysite.appにアクセスすると、https://mysite.appにリダイレクトされます。

他のブラウザ(FirefoxおよびChrome)はリダイレクトされず、標準の非セキュアバージョンを使用できます。そのため、サーバーによって強制されるリダイレクトではありません。

Safariでhttpsバージョンにアクセスできる場合、リダイレクト自体は実際には問題になりません。ローカルの開発環境であるため、SSL証明書は自己署名されており、Safariは信頼できない証明書を使用してサイトにアクセスすることを許可しません。そのため、最後に、Safariを使用してこのVagrantサイトにアクセスすると、常にSafari can't establish a secure connectionエラーが発生します。

Result page

Safariは、自己署名証明書を受け入れる方法を提供していません(もう?)。繰り返しますが、これはChromeまたはFirefoxの問題ではありません。Firefoxを使用すると、ブラウザから例外を直接追加できるためです。

Safariでhttpバージョンのサイトまたはを使用する方法はありますか?Safariが自己署名証明書を信頼するようにしますか?

参考までに、High Sierra 10.13.2 BetaでSafari 11.0.2を使用しています。 iMacとMacbookAirでも同じ結果が得られるため、コンピューターに関連するものではありません。

11
Louis Charette

SafariがSSLを強制し、このVagrant/Homesteadボックス(FirefoxやChromeなど)で私のサイトの非セキュア(http)バージョンを使用したくない理由を見つけられませんでしたが、自己をマークする方法を見つけましたMacOS Keychain Accessで信頼されている署名済みサイト証明書。

Safariを使用すると、ブラウザに例外を直接追加して、無効なSSL証明書を使用してサイトにアクセスできるため、以前のバージョンのMacOSでは問題になりません。このオプションは、Safari 11(High Sierra)で消える継ぎ目です。

Vagrant Webサイトにアクセスするソリューション サイト証明書を保存する ホストコンピューターで(Vagrantボックスまたは別のブラウザーへのssh接続を使用して)、キーチェーンに追加し、信頼済みとしてマークします。

ただし、Keychain Accessに関する別の問題が発生しました。これは以前のバージョンのMacOSで機能していましたが、High Sierra(または少なくとも10.13.2 Beta)では、Keychain Accessアプリから信頼できる証明書としてマークする機能はなくなりました。私のiMacとMacbookAirの両方で、キーチェーンに追加された証明書をダブルクリックしても何も起こりませんGet Infoコンテキストメニューから、証明書を編集する機能は提供されません。

これの回避策 は、コマンドラインを使用して証明書を信頼済みとしてマークすることです。ターミナルを使用して、cdをコンピューター上の証明書が保存されているディレクトリに移動し、次のコマンドを実行します。

Sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain example.app.cer

変化する example.app.cer証明書の名前。これにより、証明書がKeychain Accessで信頼済みとしてマークされ、有効な証明書で署名されているかのようにローカルサイトにアクセスできます。

tl; drVagrant/Homesteadボックスから取得したサイト証明書をキーチェーンに追加し、コマンドを実行して、https接続を使用します。

13
Louis Charette

前の答えは完全に正しいわけではありません。 macOS High Sierra has Keychain Accessアプリを介して証明書を信頼するため、CLIは不要です。

手順:

  1. キーチェーンアクセスアプリを開き、証明書を見つけます。
  2. ファイル->情報を見る
  3. 情報ウィンドウ内の信頼メニューを開きます(Word Trustの左側にある三角形の表示に注意してください)。
  4. [この証明書を使用する場合]を[常に信頼する]に設定します。

できた.

4
Andrew Magruder