【初心者向け】GCPでWordPressブログサイトを構築する[第5回 サイトのHTTPS化/サーバサイド編]

IT
この記事には広告が含まれています

本シリーズ『【初心者向け】GCPでWordPressブログサイトを構築する』の第3回にて、GCPのロードバランサーを使用してブログサイトをHTTPS化しました。

ですが、『【初心者向け】料金計算ツールでGCPの費用を見積もってみよう』でも記載した通り、GCPのロードバランサーを使用した場合、GCPの利用料金が最低でも毎月2,500円(2023年6月現在)ほどかかります。

そのため、ロードバランサーを使用せず、サーバ自体でHTTPSを処理できるようにすれば、GCPの使用料を下げることが可能です。

今回は、WordPressサーバにSSL/TLSサーバ証明書を組み込んで、ロードバランサーを使用せずにブログサイトをHTTPS化する方法を解説します。

スポンサーリンク

GCP仮想マシンの設定変更

まずはロードバランサーなしで直接WordPress仮想マシンがHTTP/HTTPSのトラフィックを受けられるようします。

HTTP/HTTPSのトラフィックを許可

GCPのコンソールにて、左上メニューから『Compute Engine』を選択し、WordPress仮想マシンの名前をクリックします。

上部メニューから『編集』をクリックして設定の編集画面を開きます。

『ネットワーキング』セクションにある『Allow HTTP traffic』と『Allow HTTPS traffic』にチェックを入れ、『保存』ボタンをクリックします。

静的外部IPアドレスの割り当て

続いて、仮想マシンに固定のグローバルIPアドレスを割り当てます。

GCPのコンソールにて、左上メニューから『VPCネットワーク > IPアドレス』を選択します。

現在使用されているIPアドレスが表示されます。

上部メニューの『RESERVE EXTERNAL STATIC IP ADDRESS』をクリックします。

『静的アドレスの予約』画面が開きます。
各項目を以下のように設定します。

設定項目設定内容
名前IPアドレスを管理するための名前を入力します。ここでは”static-ip-address-1″とします。
ネットワークサービスティアスタンダードに変更します。※より高品質なネットワークを使用したい場合はプレミアムでも良いのですが、今回は費用を最小限にしたいのでスタンダードを選択します。
IPバージョンIPv4のままにします
※スタンダードティアの場合はIPv4のみが使用可
リージョン仮想マシンが稼働しているリージョンを選択します。
ここでは”us-west1(オレゴン)”を選択します。
接続先IPアドレスを割り当てるWordPress仮想マシン名を選択します。

入力が完了したら『予約』をクリックします。

静的IPアドレスが作成されました。

仮想マシンの設定も見てみます。

作成したIPアドレスが割り当てられています。

以上でGCPの設定は完了です。

ドメインとIPアドレスの紐づけ変更

Google Domainsのカスタムレコードの設定を、先ほど作成したグローバルIPアドレスに変更します。

DNSレコードの反映には、最大でAレコードのTTLの秒数だけかかりますので、しばらく時間をおいてからアクセスしてみましょう。
Webブラウザから先ほど作成したIPアドレスとドメイン名でアクセスしてみて、あなたのブログサイトが表示できていればOKです。
※この段階ではまだHTTPのみでアクセス可能です。

SSL/TLS証明書の発行とサーバへの組み込み

SSL/TLS証明書を発行し、WordPress仮想マシンにサーバに組み込みます。

無償で使用可能なSSL/TLS証明書の発行方法として最もメジャーなのは、非営利団体の Internet Security Research Group (ISRG)が運営している『Let’s Encrypt』というサービスを利用することです。
ですが、今回はGoogle Domainsで独自ドメインを取得していることもあり、Googleが提供しているサービスである『Google Trust Services』を使用します。

Google Domainsから証明書発行用のキーを取得

Google Domains にログインして、証明書を適用するドメインを選択します。

メニューから『セキュリティ』 をクリックします。

『ドメインの SSL/TLS 証明書』セクションの 『Google Trust Services』を展開して、『EAB キーを取得』をクリックします。

『EAB キー ID』 と 『EAB HMAC キー』 の 2 つの値が表示されたダイアログが開きます。
それぞれの値の横にあるコピーボタンをクリックして値をコピーし、メモ帳などに控えておきます。

Certbotを使用して証明書を発行する

GCPコンソールにてWordPress仮想マシンに『SSH』で接続します。

SSHコンソールが開きます。

“Certbot”をインストール

以下のコマンドを実行してACMEクライアントであるCertbotをインストールします。

sudo apt -y install certbot python3-certbot-apache

Google Trust Servicesにアカウントを登録

次のコマンドを実行します。

[CONTACT_EMAIL]には管理者(あなた)のメールアドレスを入力してください。
[EAB_KEY_ID]と[EAB_HMAC_KEY]には、前の手順で控えておいた[EAB キー ID]と[EAB HMAC キー]を入力します。

certbot register --email [CONTACT_EMAIL] --no-eff-email --server "https://dv.acme-v02.api.pki.goog/directory"  --eab-kid "[EAB_KEY_ID]" --eab-hmac-key "[EAB_HMAC_KEY]"
Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at https://pki.goog/GTS-SA.pdf. You must agree
in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y  ←アカウントを登録するか確認されるので"Y"を入力してEnter
Account registered.

Google Trust Servicesにアカウントが登録されました。

SSL/TLS証明書の発行

Certobotを使用してSSL/TLS証明書を発行します。

このとき、Certobotがポート80番を使用するので、いったんApache HTTPDを停止します。
以下のコマンドを実行します。

sudo systemctl stop apache2

続いて証明書を発行します。
以下のコマンドを実行します。

sudo certbot -d [YOUR_DOMAIN] --server "https://dv.acme-v02.api.pki.goog/directory" --apache

[YOUR_DOMAIN]にはブログサイトのドメイン名を入力します。

Congratulations! You have successfully enabled https://[YOUR_DOMAIN]

と表示されていれば成功です。

Apache HTTPDを起動しておきます。
以下のコマンドを実行します。

sudo systemctl start apache2

これでWordPress仮想マシンのHTTPS化が完了しました。

Webブラウザにて https://[ドメイン名]/ にアクセスして、HTTPSでアクセスできるようになっていることを確認しましょう。

SSL/TLS証明書の更新について

今回発行したSSL/TLS証明書の有効期限は3カ月間となっています。
Certbotを使用して発行した場合、自動的に更新される仕組みになっていますので、定期的に更新手続きをする必要はありません。

念のため、自動更新が有効になっているか見てみましょう。

発行された証明書の情報を確認

$ sudo certbot certificates
Saving debug log to /var/log/letsencrypt/letsencrypt.log
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Found the following certs:
  Certificate Name: your-domain.net
    Serial Number: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    Key Type: RSA
    Domains: your-domain.net
    Expiry Date: 20xx-xx-xx 08:28:42+00:00 (VALID: 89 days)
    Certificate Path: /etc/letsencrypt/live/your-domain.net/fullchain.pem
    Private Key Path: /etc/letsencrypt/live/your-domain.net/privkey.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

更新処理の次回実行時刻を確認

$ sudo systemctl list-timers certbot.timer
NEXT                        LEFT          LAST PASSED UNIT          ACTIVATES
Tue 20xx-xx-xx 14:22:25 UTC 4h 39min left n/a  n/a    certbot.timer certbot.service

ロードバランサーの削除

本シリーズ『【初心者向け】GCPでWordPressブログサイトを構築する』の第3回で、GCPのロードバランサーを使用してHTTPS化した場合は、ロードバランサーが不要になりましたので削除してしまいます。

GCPのコンソールを開き、『ネットワークサービス > ロードバランシング』にアクセスします。

削除するロードバランサーを選択し、画面上部の『削除』をクリックします。

ロードバランサー作成時に一緒に作成した各リソースも不要ですので一緒に削除します。

それぞれチェックを入れて、『ロードバランサと選択したリソースを削除』をクリックします。
※ここでのSSL証明書は、今回作成したSSL証明書ではなく、ロードバランサー作成時に作成したものですので削除しても問題ありません。

1-2分程度で削除が完了します。

おわりに

いかがでしたでしょうか。

GCPでWordPressブログサイトを構築する場合、HTTPS化の方法として
 1.ロードバランサーでHTTPSを処理する
 2.WordPressサーバ自体でHTTPSを処理する
という2つの方法があり、今回は2の方法について解説しました。

将来的にブログのPV数が多くなった場合など、ロードバランサー経由での構成のほうがメリットが出てくる可能性もあります。しかし、できるだけ費用をかけずに小さく始めたい場合は、今回解説した方法でHTTPS化を行う方法を推奨します。

タイトルとURLをコピーしました