ConoHa KUSANAGI のドメインを変更したい

久しぶりにドメイン検索なんかをしていましたところ、
ずっと欲しかった「kurage.net」ドメインが空いているのを発見し、
大喜びでドメイン取得したのが今日の17時ごろ。

せっかく手に入ったドメインはすぐ使わなきゃもったいないということで、
さっそくドメインを設定することにしました。

このブログは ConoHa の KUSANAGI 512MB プランで動いています。
実態は nginx + WordPress なのですが、非常に快適です。

それではドメインの設定を行っていきましょう。

ドメインの変更

ドメインの変更作業は TeraTerm などを使って SSH 接続して行います。

全て root で行うので、サーバーにログインしたら root になりましょう。

su -

今回取得したドメインは「kurage.net」なので、ブログのホスト名としては、
「www.kurage.net」を使用することにします。
作業される際にはご自身のドメインに置き換えてください。

nginx は特に止める必要はありません。起動したまま作業してOKです。

kusanagi setting --fqdn www.kurage.net <profile>

複数のプロファイルを動かしている方はプロファイルを指定してください。
そうでない方は省略できます。

これだけで基本的に設定は完了します。
とても簡単ですね。

ただ、私は常時 SSL の設定もしていたたのでちょっと問題が発生しました。

アクセスすると証明書エラーが発生するようになってしまったのです。
これでは常連さん(いないと思いますが)が離れてしまいます。

アクセスが途絶えてしまうのは致命的ですので、証明書の方も設定していきます。

証明書の設定

証明書の取得、更新設定はそれほど難しくはありません。

上記の設定を行った後、下記コマンドを打ち込むだけになります。

kusanagi ssl --email my_email_address@email.com

うまくいくと証明書が格納された場所が表示されますので、
コピーしておきましょう。

次に、nginx の設定ファイルを編集します。
私の場合は以下に置いてありました。

/etc/nginx/conf.d

おそらく「<プロファイル名>_ssl.conf」というファイルがあると思うので、
この中身を修正していくことになります。

新しいドメインに証明書の設定をするのが目的ですが、
ついでに古いドメインからはリダイレクトで新しいドメインに来るように
設定を変更しておきましょう。

server {
  listen 443 ssl http2;
  server_name www.kurage.click kurage.click;
  rewrite ^(.*)$ https://www.kurage.net$request_uri permanent; # SSL ONLY
  ssl_certificate /etc/letsencrypt/live/www.kurage.click/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/www.kurage.click/privkey.pem;
}

server {
  listen 443 ssl http2;
  server_name kurage.net;
  rewrite ^(.*)$ https://www.kurage.net$request_uri permanent; # SSL ONLY
  ssl_certificate /etc/letsencrypt/live/www.kurage.net/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/www.kurage.net/privkey.pem;
}

server {
  listen 443 ssl http2;
  server_name www.kurage.net;

  ssl_certificate /etc/letsencrypt/live/www.kurage.net/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/www.kurage.net/privkey.pem;

  #以下設定が続く

古いドメインである「kurage.click」と新しいドメインそのままの場合には
新しい URL へリダイレクトするように設定をしています。

以前の証明書は https でアクセスされた際に証明書エラーを出さないよう、
設定としては残してあります。

あとは nginx の再起動で適用されます。

nginx -t
nginx -s reload

「-t」は設定が正しいかどうかのチェックです。
先にやっておくと止めてしまってから直すことがなくなります。

これで SSL でのアクセスは全て新しい URL へリダイレクトされるようになりました。

その他の設定

これで全て解決・・・とはいきませんでした。

URL を直打ちでアクセスしたところまさかの nginx トップ画面が。

理由は簡単です。
SSL の設定しか行っていなかったので非 SSL だとルーティングされずに
nginx の「Welcome to nginx!」が表示されてしまっていたんですね。

というわけで再度 nginx の設定ファイルをいじっていきます。

今度は「<プロファイル名>_http.conf」というファイルを開きます。

server_name www.kurage.click kurage.click www.kurage.net kurage.net;
rewrite ^(.*)$ https://www.kurage.net$request_uri permanent;

こんな感じの設定をすれば OK です。
保存したら nginx の設定をリロードしましょう。

nginx -t
nginx -s reload

あとは http だったり https だったりで旧ドメイン、新ドメイン、
www 有り無しでアクセスして全て新 URL へリダイレクトされれば完了です。

存分に新 URL ライフをお楽しみください。
お疲れ様でした!