KUSANAGIはコマンド一つでLet’s EncryptのSSLを発行できます。
ConoHa VPSのかんたんKUSANAGIならSSH接続することなくConoHaコントロールパネルからSSLを有効化(自動更新混み)できるのでとてもカンタンです。
ですが、KUSANAGIで運用しているWordPressのマルチサイト機能を有効化し、サブドメイン型マルチサイトを構築した場合は話が変わってきます。
KUSANAGI以外でも使われているLet’s Encryptのクライアントcertbotを使う方法も、マルチサイト機能を有効化していると上手くいきません。
ですが、KUSANAGIのSSL証明書発行用スクリプトファイルを編集することで、サブドメインにもSSL証明書を設定できたので解説していきます。
サブドメインにもSSL証明書を設定する
サブドメインにもSSLを設定する場合はKUSANAGIのSSL証明書を発行するスクリプトの一部を書き換えます
設定用スクリプトを開く
SSL証明書を発行しているスクリプトは/usr/lib/kusanagi/lib/ssl.sh
です。これをvimなどで開いて編集します。
vi /usr/lib/kusanagi/lib/ssl.sh
テキストエディタで開いたら、if [ "renew" = "$OPT" ]
となっている行(120~140行目の間ぐらい)
このif文の下に下記コードを追加します。
OPTION="-d <サブドメイン>.$FQDN $OPTION"
例えばサブドメインがsample
ならOPTION="-d sample.$FQDN $OPTION"
です。
サブドメインが複数ある場合は、サブドメイン数ぶんだけ行を分けて入力してください。
入力したら保存します。
SSL証明書の再発行
設定を変更しただけではサブドメインにSSL証明書は発行されません。一度証明書を発行し直す必要があります
SSL証明書は発行から60日経過しないと再発行できないため、SSL証明書を発行するコマンドだけだと今回追加したサブドメインにSSLが発行されないことがあります。
ですので、一度発行済SSL証明書を無効化してから新しい証明書を発行します。
まずは下記コマンドでSSL証明書を無効化します。
/usr/local/certbot/certbot-auto revoke --cert-name ドメイン名
ここのコマンドで入力する”ドメイン名”はサブドメインではないことに注意してください。
例えば”sample.acceliv.com”なら”acceliv.com”がドメイン名です。
無効化したら下記コマンドでSSL証明書を発行します。
kusanagi ssl --email メールアドレス
この方法ならSSL証明書の有効期限が近づいてもKUSANAGIが勝手に更新してくれるので安心です。
ワイルドカード指定はできない
KUSANAGIでSSL証明書を発行する場合、ワイルドカードは指定できないようです。
といってもサブドメインを毎日何十個も作成するような方はいないと思いますので、特に問題ないでしょう。
サブドメインが増えたらまた設定を変更してSSL証明書を発行したらいいだけです。