ConoHa VPS virtualhost 設定
を参考に
virtualhost の設定
今回使用するドメイン名は
www.snowpool.info
mkdir /var/www/html/www.snowpool.info
でvirtualhost ドキュメントルートディレクトリを作成
vim /etc/httpd/conf.d/virtualhost.conf
で未定義ホスト用virtualhost 設定ファイルを作成
内容は
<VirtualHost _default_:80>
ServerName any
<Location />
Require all denied
</Location>
</VirtualHost>
とすることで
virtualhost 未定義ホスト名でアクセスを拒否
vim /etc/httpd/conf.d/www.snowpool.info.conf
で www.snowpool.info の
virtualhost 設定ファイルを作成
つくるファイル名は
ドメイン名.conf
となる
内容は
<VirtualHost *:80>
ServerName www.snowpool.info
DocumentRoot /var/www/html/www.snowpool.info
ErrorLog logs/www.snowpool.info-error_log
CustomLog logs/www.snowpool.info-access_log combined env=!no_log
</VirtualHost>
なお
www.snowpool.info
の部分は取得したドメインに置き換え
systemctl restart httpd
で Webサーバ再起動
echo test >> /var/www/html/www.snowpool.info/index.html
でテストファイルを用意
これで
http://www.snowpool.info/
へアクセスすると
test と表示されます
次に Lets Encript の適用を変更するので
vim /etc/httpd/conf.d/ssl.conf
で設定ファイルを開き
56行目あたりの
<VirtualHost _default_:443>
から
218行目あたりの
</VirtualHost>
までを削除
次に
/usr/local/certbot/certbot-auto certonly --webroot -w /var/www/html/www.snowpool.info -m メルアド -d www.snowpool.info --agree-to
を実行すると
What would you like to do? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: Keep the existing certificate for now 2: Renew & replace the cert (limit ~5 per 7 days) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
となるので
Let’s Encrypt の証明書の更新で「バージョンが異なる」のメッセージが出て更新できない
を参考に
2 を入力し Enter で更新
次に
vim /etc/httpd/conf.d/www.snowpool.info.conf
を開き
<VirtualHost *:443>
ServerName www.snowpool.info:443
DocumentRoot "/var/www/html/www.snowpool.info"
ErrorLog logs/ssl-www.snowpool.info-error_log
CustomLog logs/ssl-www.snowpool.info-access_log combined env=!no_log
SSLCertificateFile /etc/letsencrypt/live/www.snowpool.info/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.snowpool.info/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/www.snowpool.info/chain.pem
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
SSLHonorCipherOrder on
Header always set Strict-Transport-Security "max-age=15768000"
</VirtualHost>
を追記
設定反映のため
systemctl restart httpd
で Webサーバを再起動
これで https アクセスになるけど
http でアクセスしてきたものを強制的に https にしたいので
を参考に
virtualhost *:80
の部分に
RewriteEngine on
RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
を追記
今回の場合
<VirtualHost *:80>
ServerName www.snowpool.info
DocumentRoot /var/www/html/www.snowpool.info
ErrorLog logs/www.snowpool.info-error_log
CustomLog logs/www.snowpool.info-access_log combined env=!no_log
RewriteEngine on
RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</VirtualHost>
<VirtualHost *:443>
ServerName www.snowpool.info:443
DocumentRoot "/var/www/html/www.snowpool.info"
ErrorLog logs/ssl-www.snowpool.info-error_log
CustomLog logs/ssl-www.snowpool.info-access_log combined env=!no_log
SSLCertificateFile /etc/letsencrypt/live/www.snowpool.info/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.snowpool.info/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/www.snowpool.info/chain.pem
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
SSLHonorCipherOrder on
Header always set Strict-Transport-Security "max-age=15768000"
</VirtualHost>
となりました