WordPressサイトを立ち上げた後、「SSLってどうやって設定するの?」と手が止まった経験はありませんか。LightsailのWordPressインスタンスはBitnamiスタックで構成されているため、通常のサーバーとは設定手順が少し異なります。今回は20分以内に完了できるSSL導入手順を、よくあるつまずきポイントも含めてまとめます。
なぜSSL化が必要なのか
SSL化(HTTPS化)が必要な理由は大きく3つあります。
- セキュリティ:通信が暗号化されるため、第三者による盗聴や改ざんのリスクが下がります。
- SEO:GoogleはHTTPSをランキング要因の一つとして公式に公表しています。HTTPのままだと検索順位で不利になる可能性があります。
- ブラウザの警告:SSL化されていないサイトはChromeなどで「保護されていません」という警告が表示されます。訪問者が離脱する原因になります。
「後でやろう」と思いがちですが、後から対応すると既存のURLが変わることで内部リンクやSNSシェアのURLが崩れるリスクがあります。WordPressを立ち上げた直後にSSL化しておくのが一番楽です。
LightsailのWordPressにSSLを設定する手順
LightsailのWordPressインスタンスはBitnamiが提供するスタックで構成されています。通常のCertbotコマンドではなく、Bitnami専用のツール(bncert-tool)を使うのが最もスムーズです。
STEP 1:静的IPとドメインの設定を先に済ませる
SSL証明書の発行にはドメインが必要です。まだ設定していない場合は先に済ませてください。
# 事前確認チェックリスト
✅ LightsailインスタンスにSSL証明書を取得済みのドメインが紐付いている
✅ 静的IPアドレスをインスタンスにアタッチしている
✅ ドメインのAレコードが静的IPアドレスに向いている
✅ DNSの変更が反映済み(dig コマンドで確認できます)
# DNSの反映確認
dig yourdomain.com +short
DNSが反映される前にSSL証明書を取得しようとするとエラーになります。反映まで数分〜数時間かかることがあるので、先に設定して待っておくのが賢いです。
STEP 2:Lightsailのファイアウォール設定を確認する
HTTPS通信のためにポート443が開いている必要があります。
# Lightsailコンソールで確認
1. Lightsailコンソール → インスタンス → ネットワーキングタブ
2. ファイアウォールルールに以下が含まれているか確認
ポート22 (SSH)
ポート80 (HTTP)
ポート443 (HTTPS)← これが開いていないとSSLが動かない
STEP 3:bncert-toolでSSL証明書を取得する
LightsailのBitnamiスタックにはbncert-toolというSSL設定ツールが用意されています。これを使うとLet's Encryptの証明書取得からApacheの設定変更、自動更新の設定まで一括で完了します。
# SSHでインスタンスに接続後、以下のコマンドを実行
sudo /opt/bitnami/bncert-tool
# 実行後の対話形式の入力例
Domain list: yourdomain.com www.yourdomain.com
WWW to non-WWW redirect: Y
Non-WWW to WWW redirect: N
HTTP to HTTPS redirect: Y
# 入力内容を確認して「Y」を押すと証明書の取得が始まる
Do you agree to the Let's Encrypt Subscriber Agreement? [Y/n]: Y
コマンドを実行すると対話形式で設定が進みます。ドメインを入力してEnterを押していくだけで、証明書の取得からApacheの設定変更まで自動で完了します。所要時間は2〜3分程度です。
STEP 4:WordPressのURL設定を更新する
SSL証明書を取得した後、WordPressの管理画面でURLをHTTPSに変更しないとサイトが正常に動きません。これを忘れると無限リダイレクトが発生します。
# WordPress管理画面での設定
1. 管理画面 → 設定 → 一般
2. WordPressアドレス(URL):https://yourdomain.com に変更
3. サイトアドレス(URL):https://yourdomain.com に変更
4. 変更を保存
# wp-config.phpで設定する場合
define('WP_HOME', 'https://yourdomain.com');
define('WP_SITEURL', 'https://yourdomain.com');
STEP 5:HTTPからHTTPSへのリダイレクト設定
bncert-toolを使った場合はリダイレクト設定も自動で行われます。手動で設定する場合は.htaccessに以下を追記します。
# .htaccessへの追記(WordPressのルートディレクトリ)
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Nginxの場合(nginx.confに追記)
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
return 301 https://$host$request_uri;
}
よくあるつまずきポイントと解決方法
① Mixed Content(混合コンテンツ)エラー
SSL化した後にブラウザの鍵マークが表示されない場合、Mixed Contentエラーが発生しています。これはHTTPSページ内にHTTPで読み込まれているリソース(画像・CSS・JavaScriptなど)がある状態です。
# ブラウザの開発者ツール(F12)で確認
コンソールタブ → Mixed Content のエラーメッセージを確認
どのリソースがHTTPで読み込まれているか特定できる
解決方法はデータベース内のURLを一括置換することです。手動でやると見落としが発生するので、「Better Search Replace」などのプラグインを使うのが確実です。
# Better Search Replaceプラグインでの設定
検索する文字列:http://yourdomain.com
置換する文字列:https://yourdomain.com
対象テーブル:全て選択
「ドライラン」で確認後に実行
② 証明書取得時に「Domain validation failed」エラー
DNSの反映が完了していない状態でbncert-toolを実行するとこのエラーが出ます。
# 解決方法
# DNSの反映を確認してから再実行
dig yourdomain.com +short
# 静的IPアドレスが表示されれば反映済み
# 数分待ってから再度実行
sudo /opt/bitnami/bncert-tool
③ 管理画面にログインできなくなった
URL設定を変更した後に管理画面にアクセスできなくなるケースがあります。
# wp-config.phpを直接編集して強制的にURLを設定
sudo nano /opt/bitnami/wordpress/wp-config.php
# 以下を追記
define('WP_HOME', 'https://yourdomain.com');
define('WP_SITEURL', 'https://yourdomain.com');
# ファイルを保存してApacheを再起動
sudo /opt/bitnami/ctlscript.sh restart apache
SSL証明書の自動更新を確認する
Let's Encryptの証明書は90日で期限が切れます。bncert-toolで設定した場合は自動更新が設定されますが、正常に動作しているか定期的に確認しましょう。
# 証明書の期限確認
sudo /opt/bitnami/letsencrypt/lego/lego \
--path /opt/bitnami/letsencrypt list
# cronの自動更新設定を確認
crontab -l | grep renew
# 証明書の有効期限をOpenSSLで確認
echo | openssl s_client -connect yourdomain.com:443 2>/dev/null \
| openssl x509 -noout -dates
期限の2週間前には自動更新が走るように設定されています。更新に失敗した場合はLightsailのメトリクスやサーバーのログを確認してください。
まとめ:SSL設定のチェックリスト
設定完了後に以下を確認してください。
- ブラウザのアドレスバーに鍵マークが表示されている
- HTTPでアクセスしたときにHTTPSにリダイレクトされる
- WordPress管理画面のURLがhttpsになっている
- Mixed Contentエラーが出ていない(開発者ツールで確認)
- SSL証明書の自動更新が設定されている
LightsailのWordPressでSSLを設定する際は、bncert-toolを使うのが一番楽です。手動でCertbotを使う方法もありますが、Bitnamiスタックでは設定ファイルの場所が通常と異なるためトラブルが起きやすいです。まずbncert-toolを試して、それでもうまくいかない場合に手動対応を検討する順番がおすすめです。