はじめに
KUSANAGIで建てたサイトを、後からSSL化する場合のメモです。
以前はKUSANAGIではLet's Encryptに対応していませんでしたが、現在では標準で対応しています。KUSANAGIもLet's Encryptもとても便利ですね。
作業の前に
/etcを色々と変更するので、ロールバックできるようにGit化しておくと便利です。
/etcをGit(や他のVCS)で管理することに特化した etckeeper の利用がおすすめです。
サーバの/etcを自動的にgitとかにコミットプッシュしてくれるetckeeperを使う
http://qiita.com/yousan/items/91dfc187f8345d299068
etckeeperではなくともGit化して置くだけでも便利です。
$ cd /etc
$ sudo git init
$ sudo git add -A
$ sudo git commit -m 'first commit'
バックアップとアップデートも必要に応じて行っておきます。
特に kusanagi コマンドはアップデートでどんどん便利になってコマンドが追加されているので最新版を使います。
$ sudo yum update -y --skip-broken
...略
現在のプロファイルの確認
現在プロビジョンされているプロファイルを確認します。
/etc/kusanagi.d/profile.conf
にphp.ini形式で保存されています。
$ sudo less /etc/kusanagi.d/profile.conf
[example.com]
PROFILE="example.com"
KUSANAGI_TYPE="WordPress"
KUSANAGI_FQDN="example.com"
KUSANAGI_DIR="/home/kusanagi/example.com"
KUSANAGI_DBNAME="kusanagi_wordpress"
KUSANAGI_DBUSER="kusanagi"
KUSANAGI_DBPASS="password"
WPLANG="ja"
OPT_WOO=""
配置し直してSSL化
現在のドキュメントルートなどを一旦退避してプロファイルを削除します。
ファイル、DBの削除が入るのでバックアップの確認などを必ずしてください。
$ cd ~kusanagi;
$ sudo mv exmaple.com example.com_
$ sudo kusanagi remove example.com
Remove example.com config files ? [y/n] y
Remove /home/kusanagi/example.com ? [y/n] n
Remove example.com database ? [y/n] n
Done.
Let's Encryptを有効にしつつプロビジョンします。
$ sudo kusanagi provision --WordPress \
--wplang ja --fqdn example.com \
--email user@example.com \
--dbname kusanagi_wordpress --dbuser kusanagi --dbpass password \
example.com
nginxの転送設定
httpにつながれた場合にはhttpsへ転送するようにしておきます。
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
... 後略 ...
}
nginxを再起動します。
$ sudo sh -c 'nginx -t && systemctl restart nginx.service || systemctl status nginx.service -l'
CentOS7でnginxのコンフィグテスト、サービス再起動、エラーログ表示をワンライナーで
http://qiita.com/yousan/items/10ef2b8c20f744b6eeb0nginx で http でのアクセスを https にリダイレクト
http://qiita.com/kga/items/e30d668ec1ac5e30025b
リダイレクトされているか接続試験を行います。
$ curl -D - -s -o /dev/null http://example.com | grep -e HTTP -e Location
HTTP/1.1 301 Moved Permanently
Location: https://example.com/
ステータスコードが301に、Locationがhttpsになっていれば良いです。
cURLコマンドでレスポンスヘッダのみを取得する
http://qiita.com/yousan/items/fcc15e1046939c465ab7
ブラウザで確認
必ずブラウザで確認しましょう。
よいSSLライフを!