web-dev-qa-db-ja.com

HTTPSサイトのApache書き換えルールとDNS設定

次の場所にあるWebアプリケーションの場合:

https://www.domain.com/

「www.domain.com」に発行されたSSL証明書を使用して、

以下の各URLをhttps://www.domain.com/にリダイレクトするように見える適切な書き換えルール、DNS設定、または両方の組み合わせは何ですか。

 1. http://www.domain.com
 2. http://domain.com
 3. https://domain.com

難しさは本当に#3にあります。 https://domain.comは、ブラウザのセキュリティメッセージを表示する傾向があります。主要なHTTPSサイトはこれをどのように行いますか? Paypal.comを例にとってみましょう。

2
perrierism

項目3、およびおそらく2についてのもう少しの支援として、 サーバー名表示 を使用して同じホストで2つの証明書を使用するのはどうですか。 (例:www.domain.comおよびdomain.com) ApacheのWiki 詳細に関する情報があります。

-クリストファー・カレル

3

ジェームズ回答 へのフォローアップ:

RewriteCond %{HTTP_Host} !^www.domain.com$    [OR]
RewriteCond %{HTTP_PORT} !^443$
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]

これでも#3は修正されません。そのためには、ワイルドカードまたはUCC証明書が必要です。

5
Chris S

最も簡単なオプションは、htaccessファイルまたはhttpd.confでmod_rewriteを使用することだと思います。必要な最初の2つを転送するために私が使用するものは次のとおりです。

RewriteCond %{SERVER_PORT} 80
ReWriteRule ^(.*)$ https://www.domain.com/$1 [R,L]

したがって、 https://domain.comhttps://www.domain.com に転送するには、次のようにします。

RewriteCond %{SERVER_PORT} 443
RewriteCond %{HTTP_Host} ^domain.com
RewriteRule ^(.*)$ http://www.domain.com/$1 [R,L]

試してみたい場合は、これら2つのルールセットを統合する方法があると確信しています。現時点では、Apacheサーバーをテストするために使用していません。

3
James

https://www.domain.com の証明書は https://domain.com では機能しません。

たっぷりoftutorials があります。

0
mcandre