2026年11月8日
2026年11月8日
WordPressのマルチドメインSSL証明書の設定方法
はじめに
WordPressサイトで複数のドメインを管理する場合、各ドメインに対して個別のSSL証明書を設定することが求められます。マルチドメインSSL証明書の導入はセキュリティとユーザーエクスペリエンスの向上に重要な役割を果たします。
症状・背景
このテーマが必要になる主な場面:
- <サイトが複数のドメインで運用されている>
- <各ドメインに対して個別のSSL証明書を使用したい>
- <セキュリティ上の要件として全ての通信を暗号化する必要がある>
手順・設定方法
ステップ1: SSL証明書の取得とインストール
# OpenSSLを使用してCSR(署名要求)を作成します
openssl req -newkey rsa:2048 -nodes -keyout example.com.key -out example.com.csr
# ドメインを所有していることを確認するためにDNSレコードを追加します
dig +short TXT @ns1.example.com _acme-challenge.example.com
# Let's EncryptからSSL証明書を取得します
certbot certonly --webroot --webroot-path=/var/www/html -d example.com,www.example.com
ステップ2: Apacheの設定ファイルの編集
# SSL設定ファイルを開きます
nano /etc/apache2/sites-available/example.com-le-ssl.conf
# マルチドメインSSLを有効にするためのVirtualHost設定を追加します
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
</VirtualHost>
ステップ3: WordPressのwp-config.phpファイルを編集
# wp-config.phpを開きます
nano /var/www/html/wp-config.php
# 安全なコネクションのみを使用するように設定します
define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);
# マルチドメインに対応させるためのフィルタを追加します
add_filter( 'siteurl', 'ssl_site_url', 10, 2 );
function ssl_site_url($url,$request){
return str_replace("http://","https://",$url);
}
ステップ4: 統合とテスト
# Apache設定を有効化し、サービスを再起動します
a2enmod rewrite headers ssl
systemctl restart apache2
# SSL証明書の更新スクリプトを作成し、定期実行に登録します
crontab -e
0 1 * * * /usr/bin/certbot renew --quiet && systemctl reload apache2
注意事項
- <ドメイン間でSSL証明書が正しく共有されていることを確認してください>
- <すべての通信がHTTPS経由であることを確認してください>
- <セキュリティ上の問題を避けるために、不必要なHTTPアクセスは禁止するように設定しましょう>
まとめ
1. <キー1>: SSL証明書の取得とインストール
2. <キー2>: Apacheの設定ファイルの編集
3. <キー3>: WordPressのwp-config.phpファイルを編集
4. <キー4>: 統合とテスト
関連記事: