tech.tiger-rack.co.jp(このブログ)をサーバー移転しました
はじめに
このブログ(tech.tiger-rack.co.jp)を、別のVPSへサーバー移転しました。
作業の大まかな流れと、その中で特にやってよかったと感じている「SSL証明書のコピー」について書きます。
移転の大まかな流れ
1. gitリポジトリの移設(旧サーバーのリポジトリを新サーバーへmirror転送)
2. DBの移設(旧サーバーでdump → 新サーバーでimport)
3. SSL証明書の移設(新規取得ではなく、旧サーバーの証明書ファイルをそのままコピー)
4. サイトの展開(新サーバー上にリポジトリを配置し、公開ディレクトリとして紐付け)
5. WordPress本体・プラグイン・アップロードファイルなど、git管理外ファイルの転送
6. Webサーバー設定を有効化(証明書は既にあるので、最初からhttps込みで設定できる)
7. DNSの切り替え
8. 表示確認(特に、テーマのビルド成果物であるCSS/JS/画像が崩れていないか)
9. 旧サーバー側の後片付け
特別なことはしておらず、「バックアップして新サーバーに持っていく」の積み重ねです。
特によかった話: 証明書は「新規取得」ではなく「コピー」する
SSL証明書というと、新しいサーバーに移ったらcertbotで取り直すものだと思われがちですが、今回は旧サーバーの証明書ファイル一式をそのまま新サーバーにコピーする方法を取りました。
理由はシンプルで、Let’s Encryptの証明書はただのファイルであり、発行・更新のタイミングでこそドメインの向き先が検証されますが、すでに発行済みの証明書を「使うだけ」なら、どのサーバーに置いても普通に動くからです。
# 旧サーバーで証明書一式をtarにまとめる
cd /etc/letsencrypt
sudo tar czf /tmp/letsencrypt-backup.tar.gz accounts archive live renewal
# 新サーバーへ転送して展開
sudo tar xzf letsencrypt-backup.tar.gz -C /etc/letsencrypt所有者とパーミッションも調整します。
特に証明書本体(秘密鍵を含む`archive/`ディレクトリ)は、転送の過程でuid/gidがズレることもある(らしい)ため、rootのみが読み書きできる状態に揃えました。
sudo chown -R root:root accounts archive live renewal
sudo chmod -R go-rwx archiveこれまでの移転では、DNSの向き先を新サーバーに切り替えて、それが浸透してからでないとcertbotで証明書を取得できず、浸透待ち+証明書取得待ちの間はhttpsが機能しないダウンタイムが発生していました。
証明書を事前にコピーしてきたことで、このダウンタイムが丸ごとなくなりました。
- 新サーバー側は展開が終わった時点で、既にhttpsが機能する状態になっている
- 移転直後の作業中でも、`–resolve`でホスト名解決を上書きすれば、DNS切り替え前からhttpsで本番同様の表示確認ができる
- あとはDNSを切り替えるだけで、切替が反映された端末から即座に正しいhttpsで表示される
curl -Ik --resolve tech.tiger-rack.co.jp:443:<新サーバーのIP> https://tech.tiger-rack.co.jp/まとめ
- サーバー移転はリポジトリ・DB・証明書・git管理外ファイルの移設という、地味だが積み重ねの作業
- SSL証明書は新規取得ではなく既存ファイルのコピーで持っていける。DNS切替のタイミングを証明書取得待ちから解放できるのでおすすめ
このカテゴリの最新記事
2023.07.12
2025.10.02
2025.08.28
2024.01.17