SNI が Ubuntu 14.04 で動作しない、同じ IP 上の複数の仮想ホスト SSL

SNI が Ubuntu 14.04 で動作しない、同じ IP 上の複数の仮想ホスト SSL

標準 LAMP インストールを備えた Ubuntu 14.04。

単一の IP で、SNI を使用した SSL を使用して 2 つの Web サイトを実行しようとしています。2 つの異なる証明書があり、正しく適用されています。問題は、HTTP から正しい HTTPS Web サイトへのリダイレクトです。

最新の Firefox でテストしていますが、TLS は正しく設定されています。

つまり、すべての HTTP リクエストは ... にリダイレクトされることになります。

書き換えモジュールを無効/有効にして確認しましたが、違いはありませんでした

有効なサイト:

(メインサイト) dev.domain.com.conf。その内容は通常の SSL 仮想ホスト コンテンツです...

<VirtualHost *:443>
        ServerName dev.domain.com
        ServerAlias dev.domain.com
...

(HTTPS 経由でメイン サイトにリダイレクトするために、この追加の仮想ホストを作成しました) dev.domain.com.80.conf。その内容は次のとおりです。

<VirtualHost *:80>
        ServerName dev.domain.com
        ServerAlias dev.domain.com
        ServerAdmin xxxxxxx
        Redirect permanent / https://dev.domain.com/
</VirtualHost>

(2 番目のメイン サイト) www.domain.com.conf。そのコンテンツは通常の SSL vhost です...

<VirtualHost *:443>
        ServerName www.domain.com
        ServerAlias www.domain.com
...

(HTTPS 経由でメイン サイトにリダイレクトするために、この追加の仮想ホストを作成しました) www.domain.com.80.conf。その内容は次のとおりです。

<VirtualHost *:80>
        ServerName www.domain.com
        ServerAlias www.domain.com
        ServerAdmin rxxxxx
        Redirect permanent / https://www.domain.com/
</VirtualHost>

リダイレクト用の両方の仮想ホスト構成に以下を追加した後でも、効果はありませんでした。

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

dev.domain.comHTTP はHTTPS に正しく転送されますがdev.domain.com、 HTTP はwww.domain.comHTTPS に転送されますdev.domain.com

また、両方のサイトの https URL にアクセスすると、正常に動作します。http から https へのリダイレクトのみが動作しません。

答え1

おそらく、さまざまな Apache 構成を何度も編集した後、ブラウザ キャッシュが原因でした。要約は次のとおりです。

  1. mod_rewrite: 必須ではありません。
  2. NameVirtualHost: 必須ではありません。
  3. 各サイトに対して、リダイレクト用に構成された 1 つの仮想ホスト。
  4. 上記のリダイレクト コマンドをその中に含めます。

それでおしまい。

関連情報