BETA

Apacheで存在しない仮想サイトを指定すると意図しないサイトが表示される(SSL版)

投稿日:2020-02-10
最終更新:2020-02-10

1年半くらい前にApacheで存在しない仮想サイトを指定すると意図しないサイトが表示されるという記事を書きましたが、今度は「https始まりで存在しないサイトにアクセスすると意図しないサイトが表示される」現象に遭遇。

原因も同じですね。最初のVirtualHostで反応するため、です。

今回のケースで言うと、ポート80の仮想サイトは作成したが、ポート443の同名ドメインの仮想サイトを作成していなかったため同じ現象に見舞われた、という形になります。

そのため、対処法も同様です。

ただし、今回は80と443の2つの仮想サイトを作る、というところでやや応用編といった趣がありますかね。

# mkdir /var/www/dummy/  
# mkdir /var/www/dummy/web  
# chown hoge:hoge /var/www/dummy/web/  

適当に仮想サイトのドキュメントルートにするディレクトリを掘って、1.confを作成します。

# vi /etc/httpd/conf.d/1.conf  

<VirtualHost xxx.xxx.xxx.xxx:80>  
DocumentRoot "/var/www/dummy/web"  
ServerName dummy.example.com  
<Directory "/var/www/dummy/web">  
allow from all  
AllowOverride All  
Options FollowSymLinks  
Require all granted  
</Directory>  
</VirtualHost>  

また、SSL版の設定ファイルも作ります。

# vi /etc/httpd/conf.d/1-ssl.conf  

<VirtualHost xxx.xxx.xxx.xxx:443>  
DocumentRoot "/var/www/dummy/web"  
ServerName dummy.example.com  
<Directory "/var/www/dummy/web">  
allow from all  
AllowOverride All  
Options FollowSymLinks  
Require all granted  
</Directory>  
SSLCertificateFile /etc/pki/tls/certs/localhost.crt  
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key  
SSLEngine on  
SSLProtocol all -SSLv2 -SSLv3  
</VirtualHost>  

SSLはTLS1.0とか1.1も切っても良いと思いますが、今回はテスト環境なのでこれで。

あとはApacheを再起動すればOK。

備考

ちなみに設定次第ではWebminで443の仮想サイトを作ると

#  
# When we also provide SSL we have to listen to the  
# the HTTPS port in addition.  
#  
Listen 443 https  
Listen xxx.xxx.xxx.xxx:443 #不要  

Listen 443 httpsの指定があっても<IPアドレス>:<ポート名>の設定が追加されるため、ポート重複でエラーを起こして再起動に失敗する、ということがあります。

一応注意。

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

アルム=バンドのQrunch

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう