ISP でホストされている仮想サーバーには、2 つのパブリック IPv4 アドレスがあります。Apache で複数のサブドメイン (2 つ以上) を実行し、HTTP と HTTPS の両方で提供したいと考えています。SSL 証明書は、*.mydomain.com のワイルドカード証明書です。
この方法で Debian で Apache を設定しようとしましたが、失敗しました。仮想ホストが受け入れられないか、SSL エラーが発生します。(証明書を提供する前に Apache が要求されたホスト名を認識しないことはわかっていますが、証明書には可能なすべてのサブドメインが含まれています)
Debian の Apache 設定レイアウトに最適に動作する httpd.conf の作成にご協力ください。
詳細:
- Apache は HTTP の場合は *:80、HTTPS の場合は *:443 でリッスンします。
- すべてのNameVirtualHost、エイリアスなどは、両方のポート/プロトコルに対して一度に定義される必要があります。
- デフォルトでは、mydomain.com と www.mydomain.com は /var/www にルートする必要があります。
- foo.mydomain.com や bar.mydomain.com などの追加の NameVirtualHosts は、別の DocumentRoot を持つなど、特別に設定できます。
答え1
アパッチできる要求されたホスト名を確認するには、TLS サーバー名の表示。
ただし、これには比較的新しいウェブブラウザが必要です。たとえば、Windows XPでInternet Explorerを使用している場合は、追加のドメインに対して証明書の不一致メッセージが表示されます。(ありがたいことに、WinXP/IEのユーザーはほぼ絶滅しています。)ウィキペディアの記事リストがあり、これはテストページです不明な点がある場合。
NameVirtualHost *:80
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www
<Directory /var/www/>
Options Indexes FollowSymlinks MultiViews
</Directory>
</VirtualHost>
NameVirtualHost *:443
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www
<Directory /var/www/>
Options Indexes FollowSymlinks MultiViews
</Directory>
SSLEngine on
SSLCertificateFile /etc/ssl/private/example.com.pem
</VirtualHost>
追加の(サブ)ドメイン:
<VirtualHost *:80>
ServerName foo.example.com
DocumentRoot /sites/foo
</VirtualHost>
<VirtualHost *:443>
ServerName foo.example.com
DocumentRoot /sites/foo
SSLEngine on
SSLCertificateFile /etc/ssl/private/foo.example.com.pem
</VirtualHost>