Amazon LinuxDistroのApache2.4.33でこのセットアップを実現するための最も効率的な方法を探しています。
単一の関連IP
それぞれが独自のSSL証明書を持つ2つ(またはそれ以上)のドメイン
SSLProtocol
、FilesMatch
、BrowserMatch
などを1回だけ設定するために他のすべてに適用される1つのデフォルトSSLVirtualHost
それぞれのファイルを指し、ドキュメントルートを設定するドメインごとの専用VirtualHost
この設定に何か問題がありますか?
1)/etc/httpd/conf.d/ssl.conf
(ファイル全体):
Listen 443 https
SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog
SSLSessionCache shmcb:/run/httpd/sslcache(512000)
SSLSessionCacheTimeout 300
SSLRandomSeed startup file:/dev/urandom 256
SSLRandomSeed connect builtin
SSLCryptoDevice builtin
# default settings for all VirtualHosts
<VirtualHost *:443>
LogLevel warn
SSLProtocol all -SSLv3
SSLProxyProtocol all -SSLv3
SSLHonorCypherOrder o
#use OpenSSL default
#SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
#SSLProxyCipherSuite HIGH:MEDIUM:!aNULL:!MD5
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/var/www/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-5]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
2)/etc/httpd/cond.f/vhosts.conf
# foo.com
<VirtualHost *:80>
ServerName foo.com
ServerAlias www.foo.com
Redirect 301 / https://foo.com
</VirtualHost>
<VirtualHost *:443>
ServerName foo.com:443
ServerAlias www.foo.com:443
DocumentRoot "/var/www/foo"
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/foo.crt
SSLCertificateChainFile /etc/pki/tls/certs/foo.bundle
SSLCertificateKeyFile /etc/pki/tls/private/foo.key
ErrorLog logs/foo
TransferLog logs/foo-acc
</VirtualHost>
# bar.com
<VirtualHost *:80>
ServerName bar.com
ServerAlias www.bar.com
Redirect 301 / https://bar.com
</VirtualHost>
<VirtualHost *:443>
ServerName bar.com:443
ServerAlias www.bar.com:443
DocumentRoot "/var/www/bar"
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/bar.crt
SSLCertificateChainFile /etc/pki/tls/certs/bar.bundle
SSLCertificateKeyFile /etc/pki/tls/private/bar.key
ErrorLog logs/bar
TransferLog logs/bar-acc
</VirtualHost>
これは機能しますか、それとも専用ドメインごとにデフォルトのセットアップを繰り返す必要がありますか?
私はいくつかの広範なテストの後にそれを理解しました:
ssl.conf
必須の一般的な「マスター」VirtualHostは、証明書、チェーン、およびキーを参照します。そうでない場合、機能しません。したがって、明確にし、vhost間で重複する行を書き込む(および維持する)ことを避けるために、この汎用vhostを他のvhostよりも先にvhosts.conf
に移動するのが最善の場合があります。
そこで指定されたルールは、次のvhostによって適切に継承されているようであり、繰り返す必要はありません。