GCP上で構築したブログサイトを途中からHTTPS化するときの注意点を備忘録として書いておきます。
既存の構成
- WordPressはVMインスタンス上に構築されている。
- VMインスタンスの外部IPアドレスに独自ドメインにも紐づけている。
- 独自ドメインにアクセスすると直接VMインスタンス上のWordPressにつながる。
- 通信は非HTTPSなのでブラウザのアドレスバーに「保護されていない通信」が表示される。
なぜHTTPS化したいのか?
一般的にHTTPS化することは、セキュリティとプライバシーを確保し、信頼性を高める一環として推奨されていますが、そのメリットを以下に列挙します。
- セキュリティの向上: HTTPSは通信を暗号化し、データのプライバシーとセキュリティを確保します。これにより、機密情報やユーザーデータの安全性が向上し、不正アクセスやデータの盗難を防ぎます。
- ブラウザの安全表示: 最近のブラウザは、非HTTPSサイトに関する警告を表示することがあります。HTTPSを使用することで、これらの警告を回避できます。また、HTTPS化されたウェブサイトは、ブラウザのアドレスバーに鍵アイコンや「安全」の表示を表示し、ユーザーに安全なウェブサイトであることを示します。
- ブログの信頼性向上: HTTPSを使用していると、読者はウェブサイトを安全にウェブサイトを閲覧できると感じ、ブログの信頼性も向上します。
- SEO対策: 検索エンジン(例: Google)は、HTTPSを使用するウェブサイトを好意的に評価し、HTTPSを使用することがランキング向上に寄与します。HTTPS化は、検索エンジン最適化(SEO)の一環としても重要です。
ブラウザに表示される警告(保護されていない通信)を回避したいことが第一優先でしたが、外部にVMインスタンスが公開されていることも気になったので、今回のHTTPS化では「Cloud Load Balancing」を利用しました。
そのときの注意事項を備考メモとして記載します。
「HTTP から HTTPS へのリダイレクト」のチェックボックス
重要なポイントは、フロントエンドの構成をするときに、「HTTP から HTTPS へのリダイレクト」にチェックすること。
このチェック(設定)は後から編集ができません。
Cloud Load Balancingの設定概要
GCPのCloud Load Balancingの設定概要です。詳細はオフィシャルなサポートページ等を参照してください。
- インスタンスグループの作成:メニューから「Compute Engine>インスタンスグループ」を選択して作成します。グループは小規模なサイトであれば「New unmanaged instance group」で大丈夫です。本来のLoad Balancingは活かせませんが、HTTPS化と直接VMインスタンスへアクセスさせないことは実現できます。
- Cloud Load Balancingの構成:メニューから「ネットワークサービス>ロードバランシング」選択して「+ロードバランサを作成」をクリックします。
- アプリケーション ロードバランサ(HTTP/S)で構成を開始します。
- フロンエンドの構成で、新しい静的IPアドレスを予約して証明書を作成します。証明書はGoogleマネージドの証明書が便利です。そして、ここに今回の備忘録で重要な「HTTP から HTTPS へのリダイレクト」チェックボックスがあります。
- バックエンドの構成のバックエンドサービスの作成で、インスタンスグループを選択して先ほど作成したインスタンスグループが選ばれていることを確認しつつ、ヘルスチェックを作成したら、新しいロードバランサの作成です。
- 新しいロードバランサのIPアドレスを「DNS>リソースレコード欄>カスタムレコードを管理」をクリックして、Aレコードのデータ欄に書き換えて「保存」する。
私
ここで「HTTP から HTTPS へのリダイレクト」のチェックを忘れて、http://ドメイン名にアクセスすると「ページがありません」(404エラー)になります。
HTTPS化後の構成
- フロントエンドに、ロードバランサとfrontend-redirectが配置されている。
- ロードバランサの新しいIPアドレスにこれまでの独自ドメインが紐づいている。
- ロードバランサに証明書が配置されHTTPS化したのでブラウザに安全表示されている。
- バックエンドの構成は変わっていないが、外部にIPアドレスが開示されていない。
私
なお、Cloud Load Balancingはお金がかかるので、その点も注意してください。