LoginSignup
3

More than 5 years have passed since last update.

KUSANAGIでプロビジョン済みのプロファイルをLet's EncryptでSSL化する

Posted at

はじめに

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へ転送するようにしておきます。

/etc/nginx/conf.d/example.com_ssl.conf
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/10ef2b8c20f744b6eeb0

nginx で 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

ブラウザで確認

必ずブラウザで確認しましょう。

Screen Shot 2017-04-23 at 11.10.38.png

よいSSLライフを!

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3