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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です