Apacheのバーチャルホスト設定で2つのWEBサイトを運用

 

Apacheの名前ベースのバーチャルホストを設定して1つのサーバーで2つのWEBサイトを運用します。

※CentOS7関連のインストール・設定については「CentOSで自宅サーバー様」を参考に自分の環境に合わせて設定しています。

WEBサイト1をhttp://main-server.com、DocumentRootを/var/www/html/main、
WEBサイト2をhttp://second-server.com、DocumentRootを/var/www/html/secondとします。

●バーチャルホスト未定義ホスト名でアクセス時にアクセスを拒否する未定義ホスト用バーチャルホスト設定ファイル作成
# vi /etc/httpd/conf.d/virtualhost-00.conf

<VirtualHost *:80>
ServerName any
<Location />
Require all denied
</Location>
</VirtualHost>

●main-server.com用のバーチャルホスト設定ファイル作成
# vi /etc/httpd/conf.d/main-server.com.conf

<VirtualHost *:80>
ServerName main-server.com
DocumentRoot /var/www/html/main
</VirtualHost>

●second-server.com用のバーチャルホスト設定ファイル作成
# vi /etc/httpd/conf.d/second-server.com.conf

<VirtualHost *:80>
ServerName second-server.com
DocumentRoot /var/www/html/second
ErrorLog logs/second-server-error_log
CustomLog logs/second-server-access_log combined env=!no_log
</VirtualHost>

●バーチャルホスト設定有効化
systemctl restart httpd

 

<バーチャルホストのSSL設定>

バーチャルホストで運用している2つ(以上)のサイトをSSL化する場合の設定です。
main.server.com、second-server.com共にcertbotによるサーバー証明書を取得済みとして記述します。

※LET’S ENCRYPTのサーバー証明書の取得、mod_sslのインストールについては
certbotを使ってWEBサーバーをSSL化」をご覧ください。

●ssl.confを以下のように編集(必要な部分のみ抜き出しています)
# vi /etc/httpd/conf.d/ssl.conf

#<VirtualHost _default_:443>  ←#を付けてコメントアウト
NameVirtualHost *:443
SSLStrictSNIVHostCheck off

###main.server.comの設定###
<VirtualHost *:443>

DocumentRoot “/var/www/html/main”
ServerName main-server.com:443

ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn

SSLEngine on

SSLProtocol all -SSLv2 -SSLv3

SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA

SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+
AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+
3DES:!aNULL:!MD5:!DSS
(SSLCipherSuiteから:!DSSまで1行で記述)
SSLHonorCipherOrder on

SSLCertificateFile /etc/letsencrypt/live/main-server.com/cert.pem

SSLCertificateKeyFile /etc/letsencrypt/live/main-server.com/privkey.pem

SSLCertificateChainFile /etc/letsencrypt/live/main-server.com/chain.pem

<Files ~ “\.(cgi|shtml|phtml|php3?)$”>
SSLOptions +StdEnvVars
</Files>
<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”

Header always set Strict-Transport-Security “max-age=15768000”
</VirtualHost>

###second-server.comの設定###
<VirtualHost *:443>

ServerName second-server.com:443
DocumentRoot /var/www/html/second

ErrorLog logs/ssl_second_error_log
TransferLog logs/ssl_second_access_log
LogLevel warn

SSLEngine on

SSLProtocol all -SSLv2 -SSLv3

SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA

SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+
AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+
3DES:!aNULL:!MD5:!DSS
(SSLCipherSuiteから:!DSSまで1行で記述)
SSLHonorCipherOrder on

SSLCertificateFile /etc/letsencrypt/live/second-server.com/cert.pem

SSLCertificateKeyFile /etc/letsencrypt/live/second-server.com/privkey.pem

SSLCertificateChainFile /etc/letsencrypt/live/second-server.com/chain.pem

<Files ~ “\.(cgi|shtml|phtml|php3?)$”>
SSLOptions +StdEnvVars
</Files>
<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”

Header always set Strict-Transport-Security “max-age=15768000”
</VirtualHost>

※https://www.second-server.com使用時は以下も追記

<VirtualHost *:443>

ServerName www.second-server.com:443
DocumentRoot /var/www/html/second

ErrorLog logs/ssl_second_error_log
TransferLog logs/ssl_second_access_log
LogLevel warn

SSLEngine on

SSLProtocol all -SSLv2 -SSLv3

SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA

SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+
AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+
3DES:!aNULL:!MD5:!DSS
(SSLCipherSuiteから:!DSSまで1行で記述)
SSLHonorCipherOrder on

SSLCertificateFile /etc/letsencrypt/live/second-server.com/cert.pem

SSLCertificateKeyFile /etc/letsencrypt/live/second-server.com/privkey.pem

SSLCertificateChainFile /etc/letsencrypt/live/second-server.com/chain.pem

<Files ~ “\.(cgi|shtml|phtml|php3?)$”>
SSLOptions +StdEnvVars
</Files>
<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”

Header always set Strict-Transport-Security “max-age=15768000”
</VirtualHost>

●SSL設定有効化
systemctl restart httpd

 

 

カテゴリー: CentOS7 パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です