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>
となりました