だから、私はsecure.domain.comのSSL証明書を持っています。このドメイン (git repo など) でいくつかの管理 Web アプリケーションを実行し、.htaccess 基本認証を使用して認証します。
https 経由でドメインと通信し、認証を求められた場合、証明書は検証されましたか、それとも認証後に検証されますか?
同様に、http 経由で接続する場合、要求を https に転送してから認証する簡単な方法はありますか?
だから、私はsecure.domain.comのSSL証明書を持っています。このドメイン (git repo など) でいくつかの管理 Web アプリケーションを実行し、.htaccess 基本認証を使用して認証します。
https 経由でドメインと通信し、認証を求められた場合、証明書は検証されましたか、それとも認証後に検証されますか?
同様に、http 経由で接続する場合、要求を https に転送してから認証する簡単な方法はありますか?
HTTPS が使用する SSL または TLS セッションは、HTTP トラフィックが送信される前に構築されます。これには、証明書の検証が含まれます。セッションが構築されると、HTTP トラフィックが GET/POST などから始まりWWW-Authenticate
、ログイン ボックスをトリガーするヘッダーで通常どおり応答します。
HTTP から HTTPS へのリダイレクトに関しては、使用しているサーバーによって異なります。というタグが付けられているので.htaccess
、Apache を想定します。そのためには、ファイル内で次のような.htaccess
処理を行う必要があります。
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
https 経由でドメインと通信し、認証を求められた場合、証明書は検証されましたか、それとも認証後に検証されますか?
SSL は HTTP プロトコルとは別のレイヤーであり、BASIC 認証は HTTP プロトコルの一部です。SSL ハンドシェークは、プロトコル情報が送信される前に最初に行われます。ハンドシェイクを行うエンドポイントと、互いの証明書を検証する方法によっては、検証がまったく行われない場合があります。しかし、それが発生した場合 (おそらく広く使用されているすべてのブラウザーで発生します)、認証データが送信される前のハンドシェイク中に発生します。
同様に、http 経由で接続する場合、要求を https に転送してから認証する簡単な方法はありますか?
これを行うにはいくつかの方法があります。これを行う方法を尋ねる StackOverflow には多くの質問があります。「force https」を検索してください。おそらく、どの構成ファイルにアクセスできるかが問題になります。仮想ホスト構成にアクセスできる場合は、非 SSL 構成Redirect
の仮想ホストにディレクティブを追加し、 https にリダイレクトします。それ以外の場合は、.htaccess ファイルでこれを行う必要があります。これに沿ったもの(非SSLサイト):
Redirect 301 / https://yourdomain.com/