【サーバー移行】ネームサーバー切り替え前にSSL証明書の移行

新サーバーにサイトを移行する際、ネームサーバーの浸透完了までのダウンタイムを避けるため、ネームサーバーを切り替える前にSSL通信をできるようにしたかった。

前提
  • 旧サーバー:さくらのSSLによる、証明書が発行されている
  • 新サーバー:バーチャルホストで運営中のサーバーで、すでに別ドメインがlet’s encrypt でssl通信を行っている。そのため、設定ファイル?などはサーバー内にすでにあり、SSL証明書さえあれば SSL通信が可能な状態。

旧サーバーは以前、let’s encrypt から、さくらのSSL に乗り換えた。

旧サーバーにある、秘密鍵、サーバ証明書、中間証明書をダウンロードして新サーバーにアップロードする。

証明書の場所

SSLCertificateFile /etc/ssl/sakurassl-sslkey/sakurassl-○○○.crt
SSLCertificateKeyFile /etc/ssl/sakurassl-sslkey/sakurassl-○○○.key
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateChainFile /etc/ssl/sakurassl-sslkey/sakurassl-○○○.cer

Apache 2.4.8以降では、設定ファイルで中間CA証明書を指定する SSLCertificateChainFile ディレクティブが廃止されたので、サーバ証明書に中間証明書の内容を追記して、一つのファイルにまとめる。

Apache 2.4.8以降 | UPKI電子証明書発行サービス

証明書ファイル結合(サーバ証明書+中間証明書の順で記載)

内容:
-----BEGIN CERTIFICATE-----
中略(サーバ証明書の内容を記載)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
中略(中間証明書の内容を記載)
-----END CERTIFICATE-----

新サーバーに /etc/ssl は存在したが sakurassl-sslkey という名前のディレクトリはなかったので、作成してアップロード。

mkdir /etc/ssl/sakurassl-sslkey

/etc/httpd/conf.d/vhost-le-ssl.conf に追記

SSLCertificateFile /etc/ssl/sakurassl-sslkey/sakurassl-○○○.crt
SSLCertificateKeyFile /etc/ssl/sakurassl-sslkey/sakurassl-○○○.key
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateChainFile /etc/ssl/sakurassl-sslkey/sakurassl-○○○.cer

文法チェック

httpd -t

再起動

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