GCP WordPressの正式なTLS対応
GCPで構築したWordPressをLet's Encryptを使ってTLS対応します。
証明書の取得
まずはLet's Encryptで証明書を発行するときに使うcertbotをインストールします。
sudo apt-get install -y certbot
インストールできたら、早速certbotを使って証明書を取得しましょう。
sudo certbot certonly --webroot -w /var/www/html -d <Your FQDN>
すると、利用規約への同意と、プロモーションが表示されるので、確認して選択します。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: a
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: n
ここでドメインの所有確認が自動で行われます。Webサーバ上に一時ファイルを置き、そこにFQDNを使ってアクセスを試みます。一時ファイルが取得できれば、そのドメインを所有しているとみなされます。
所有確認が成功すると、証明書が発行されます。
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/<Your FQDN>/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/<Your FQDN>/privkey.pem
Your cert will expire on yyyy-mm-dd. To obtain a new or tweaked
version of this certificate in the future, simply run certbot
again. To non-interactively renew *all* of your certificates, run
"certbot renew"
証明書の設定
すでにApacheでHTTPSが利用できている前提の手順です。
証明書が発行されたのでApacheに証明書を設定します。
sudo vi /etc/apache2/sites-available/default-ssl.conf
以下の通り、certbotが出力したパスに変更します。
SSLCertificateFile /etc/letsencrypt/live/<Your FQDN>/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/<Your FQDN>/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/<Your FQDN>/fullchain.pem
変更したらサーバを再起動します。
sudo systemctl restart apache2
証明書の自動更新設定
Ley's Encryptの証明書は有効期限が90日ほどなので、自動で更新するように設定します。
sudo crontab -e -u root
末尾に以下の1行を追加します。2ヶ月毎に証明書を更新するコマンドを実行するように設定しています。
0 0 1 */2 * certbot renew