ConoHa VPS virtualhost 設定
を参考に
virtualhost の設定
今回使用するドメイン名は
www.snowpool.info
1 | mkdir /var/www/html/www .snowpool.info |
でvirtualhost ドキュメントルートディレクトリを作成
1 | vim /etc/httpd/conf .d /virtualhost .conf |
で未定義ホスト用virtualhost 設定ファイルを作成
内容は
1 2 3 4 5 6 | <VirtualHost _default_:80> ServerName any <Location /> Require all denied < /Location > < /VirtualHost > |
とすることで
virtualhost 未定義ホスト名でアクセスを拒否
1 | vim /etc/httpd/conf .d /www .snowpool.info.conf |
で www.snowpool.info の
virtualhost 設定ファイルを作成
つくるファイル名は
ドメイン名.conf
となる
内容は
1 2 3 4 5 6 | <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
の部分は取得したドメインに置き換え
1 | systemctl restart httpd |
で Webサーバ再起動
1 | echo test >> /var/www/html/www .snowpool.info /index .html |
でテストファイルを用意
これで
http://www.snowpool.info/
へアクセスすると
test と表示されます
次に Lets Encript の適用を変更するので
1 | vim /etc/httpd/conf .d /ssl .conf |
で設定ファイルを開き
56行目あたりの
1 | <VirtualHost _default_:443> |
から
218行目あたりの
1 | < /VirtualHost > |
までを削除
次に
1 | /usr/local/certbot/certbot-auto certonly --webroot -w /var/www/html/www .snowpool.info -m メルアド -d www.snowpool.info --agree-to |
を実行すると
1 2 3 4 5 6 | 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 で更新
次に
1 | vim /etc/httpd/conf .d /www .snowpool.info.conf |
を開き
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <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 > |
を追記
設定反映のため
1 | systemctl restart httpd |
で Webサーバを再起動
これで https アクセスになるけど
http でアクセスしてきたものを強制的に https にしたいので
を参考に
virtualhost *:80
の部分に
1 2 | RewriteEngine on RewriteRule ^.*$ https: // %{HTTP_HOST}%{REQUEST_URI} [R,L] |
を追記
今回の場合
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <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 > |
となりました