WordPressサイトのサーバ移行関連で、ワイルドカード証明書という言葉がでてきたので、それを利用した、安全なサーバ移行手順(AWS ALB+EC2利用想定)について調べてみました。
ワイルドカード証明書について、基本的な意味から具体的な利用シーン、メリット・デメリットについて、調べたことをメモしておきます。
ワイルドカード証明書とは?
ワイルドカード証明書とは、1枚のSSL/TLS証明書で、同じ階級の複数のサブドメインをまとめて保護(暗号化)できる特殊な証明書のことです。
この証明書は、コモンネーム(証明書が対象とするドメイン名)にアスタリスク (*)
を使っているのが最大の特徴です。
具体例
*.example.com というコモンネームでワイルドカード証明書を取得したとします。
この1枚の証明書で、以下のサブドメインすべてに適用できます。
https://www.example.com
https://blog.example.com
https://shop.example.com
https://support.example.com
など、example.com
の直下のサブドメインであれば、いくつでも、どんな名前でも保護の対象になります。
【注意点】保護できない範囲
- ベースドメイン(ネイキッドドメイン):
example.com
そのものは、基本的には保護の対象外です。- ※ただし、最近の証明書発行機関(CA)の多くは、サービスとしてベースドメインも保護対象に含めてくれることが一般的です。
- さらに深い階層のサブドメイン:
login.support.example.com
のように、サブドメインが2階層以上深くなるものは保護できません。
具体的な使用場面
ワイルドカード証明書は、「一つのドメインの下で、多数のサブドメインを展開・管理する必要がある」あらゆる場面で活躍します。
企業のウェブサイト運営
サイトの目的別にサブドメインを分けている場合に最適です。
-
www.company.jp
(公式サイト)recruit.company.jp
(採用サイト)blog.company.jp
(オウンドメディア)
ステージング環境と本番環境の管理
-
www.example.com
(本番環境)stg.example.com
(ステージング環境)dev.example.com
(開発環境)
Webサービスの提供
ユーザーごとにサブドメインを発行するようなサービスで利用されます。
-
user1.service.com
user2.service.com
user3.service.com
メリットとデメリット
◎ メリット
-
コストを大幅に削減できる
これが最大のメリットです。通常、サブドメインごとに証明書を購入すると、その数だけ費用がかかります。ワイルドカード証明書なら1枚分の費用で済むため、運用するサブドメインが多いほどコストメリットが大きくなります。
-
証明書の管理が非常に楽になる
- 手間の削減: 証明書の購入、サーバーへのインストール、更新といった管理作業が1回で済みます。
- 柔軟な拡張: 新しいサブドメイン(例:
campaign.example.com
)を追加する際も、新しい証明書を取得する必要がなく、既存の証明書を使い回すだけですぐにHTTPS化できます。 - 更新漏れリスクの低減: 管理する証明書が1枚なので、「あのサブドメインの証明書だけ更新を忘れた!」といったミスを防ぎやすくなります。
△ デメリット
-
秘密鍵の管理リスクが高まる
これが最大のデメリットです。すべてのサブドメインで同じ秘密鍵を共有することになります。万が一、どれか1台のサーバーから秘密鍵が漏洩してしまった場合、その証明書で保護されているすべてのサブドメインが危険に晒されることになります。
- 例えるなら、「すべての部屋を開けられる『合鍵』を1つだけ持つ」ようなものです。便利ですが、その鍵を盗まれた時の被害は甚大になります。そのため、秘密鍵の管理は通常よりも厳重に行う必要があります。
-
証明書の種類に制限がある
最も認証レベルが高いEV証明書(ブラウザのアドレスバーが緑色になり、組織名が表示されるタイプ)では、ワイルドカード証明書は利用できません。ドメインの所有を証明する「ドメイン認証(DV)」や、組織の存在を証明する「組織認証(OV)」でのみ利用可能です。
ワイルドカード証明書の見分け方について
ワイルドカード証明書かどうかを見分ける最も簡単な方法は、証明書のコモンネーム(Common Name)を確認することです。
ワイルドカード証明書の場合:
コモンネームがアスタリスク (*) で始まっています。
例: *.your-domain.com
通常の証明書(シングルドメイン証明書)の場合:
特定のドメイン名(サブドメイン)が指定されています。
例: www.your-domain.com や shop.your-domain.com
具体的な確認方法
お手元の状況に合わせて、以下のいずれかの方法でご確認ください。
方法A:証明書発行サービスの管理画面で確認する
ご利用のレンタルサーバーや証明書発行機関(さくらインターネット、エックスサーバー、ValueSSLなど)の管理画面にログインし、証明書の詳細情報を確認します。そこに記載されている「コモンネーム」や「ドメイン名」の欄を見れば、アスタリスク (*) が含まれているかどうかが分かります。これが最も手軽な方法です。
方法B:既存サイトのブラウザで確認する
もし、その証明書が現在稼働中のWebサイトで使われている場合は、ブラウザで簡単に確認できます。
- そのサイトにアクセスし、アドレスバーの左にある鍵マークをクリックします。
- 「この接続は保護されています」といったメニューが表示されるので、「証明書は有効です」などの項目をクリックします。(ブラウザによって文言は多少異なります)
- 証明書の詳細情報が表示されるので、「発行先」や「サブジェクト」の「コモンネーム(CN)」を確認します。ここに
*.your-domain.com
と表示されていればワイルドカード証明書です。
方法C:証明書ファイルの中身を確認する
証明書ファイル(.crt や .pem という拡張子)がお手元にある場合は、PC上で直接確認することも可能です。
- Windowsの場合: 証明書ファイルをダブルクリックで開くと証明書ビューアが起動します。「詳細」タブの「サブジェクト」フィールドで確認できます。
- Mac/Linuxの場合: ターミナルで以下のコマンドを実行すると、証明書の詳しい情報が表示されます。
Bash12openssl x509 -<span class="hljs-keyword">in</span> (証明書ファイル名) -text -noout
出力結果の中の
Subject: CN = *.your-domain.com
となっている部分を確認します。
ここからは、WordPressの移行タイミングについて考えたいです。
WordPressのデータ移行のタイミングについて
WordPressをインストールしてきた後、HTTPS化をしてから、WordPressの初期設定を済ませて、データをインポートする流れが良いでしょうか?
はい、お考えの通りです。HTTPS化を完全に済ませてから、データのインポート作業を行うのが最もトラブルが少なく、確実な手順です。
なぜHTTPS化が先か?
WordPressは、サイトのURL情報(http://
かhttps://
かを含む)をデータベース内の様々な場所に保存します。もしhttp://
の状態でデータをインポートしてしまうと、後からサイトをHTTPS化した場合、データベース内に古いhttp://
のURLが大量に残ってしまいます。
これにより、以下のような「混合コンテンツ(Mixed Content)」と呼ばれる問題が発生しやすくなります。
- サイトのCSSが読み込まれず、デザインが崩れる
- 画像が表示されない
- ブラウザのアドレスバーに「保護されていない通信」という警告が表示される
これらの問題を後から修正するには、データベース内のURLをすべてhttps://
に置換する作業が必要になり、手間が増えるだけでなく、修正漏れのリスクも伴います。
推奨する具体的な手順
以下が、最もスムーズな流れです。
-
【インフラ構築】WordPressインストールとHTTPS化の完了
- EC2にWordPressのファイルを設置し、ALBを作成してSSL証明書を適用します。
- DNSを設定し、ドメイン(例:
stg.your-domain.com
)でhttps://
アクセスができる状態を完成させます。
-
【WP初期設定】WordPressのインストールを完了させる
https://stg.your-domain.com
にブラウザでアクセスし、WordPressの初期インストール(データベース情報やサイトのタイトルなどを入力する画面)を完了させます。- この時点で、WordPress管理画面の「設定」→「一般」を開き、「WordPress アドレス (URL)」と「サイトアドレス (URL)」の両方が
https://
から始まっていることを必ず確認してください。
-
【データ移行】データのインポート
- このクリーンな
https://
状態のWordPressに、既存サイトからエクスポートしたデータをインポートします。(例:All-in-One WP Migration
などのプラグインを利用)
- このクリーンな
-
【最終確認】動作確認
- データインポート後、サイトの表示やリンク、画像の表示に問題がないかを確認します。
- 最後に、管理画面の「設定」→「パーマリンク設定」を開き、何も変更せずに「変更を保存」ボタンを押すことで、リンク情報が更新され、リンク切れを防ぐことができます。
この手順で進めることで、URLの不整合によるトラブルを未然に防ぐことができます。