LoginSignup
1
3

More than 5 years have passed since last update.

AmimotoにLet's encryptを簡単インストール

Last updated at Posted at 2017-01-09

WordPressをEC2で使うにはおなじみの高速実行環境Amimoto

よく使う構成はプロビジョニング時に自動設定できるようになっているので、色々と見てみると便利。
(逆にこれを忘れていると自分で用意した構成を失ってしまったりちゃんと起動しなかったりする可能性も……無いとは言えないかもしれない。多分無い)

そんな構成群については Launch-with-1-Click/lw1-amimoto を参照。

今回はまっさらな WordPress Powered by AMIMOTO (HVM PHP7 Ready) にLet's encrypt の公式クライアント (certbot) のインストールとNginxのHTTP2有効化を一発でやる。
(といっても設定される証明書は用意されている自己署名証明書なのであしからず)

とりあえずインスタンスを立て、初回プロビジョニングが終わるまで待つ。初回はyum installとかあるので数分かかる模様。パブリックDNSにブラウザからアクセスできるようになったら準備OK。

設定した秘密鍵を使ってSSHでインスタンスに接続し、Amimotoの設定ファイルを上書き。

$ cat /opt/local/amimoto.json|jq '. + {"nginx":{"http2_enable":true},"letsencrypt":{"install":true}}| .run_list |=.+ ["recipe[amimoto::nginx_default]"]' > ~/amimoto.json
$ cp ~/amimoto.json /opt/local/amimoto.json

sudoでプロビジョニングを実行。

$ sudo /opt/local/provision

これでLet's encryptが使えるようになる……!はずだったんだけど無限にcertbotのビルドに時間がかかった。めっちゃCPUクレジット食われる……

失敗したかと思ってやり直しそうになったものの、気長に待てばなんとか終了。

あ、それとNginxのconfファイルを作成する有効にしたので念のため戻しておく。

$ jq '. .run_list|= .-["recipe[amimoto::nginx_default]"]' /opt/local/amimoto.json > ~/amimoto.json
$ cp ~/amimoto.json /opt/local/amimoto.json

(jqは便利だ……)

試しに https でインスタンスにアクセスできることを確認する。

ところでAmazon Linuxは OpenSSL 1.0.1系のためALPNが使えずNPNのみなので残念ながら Chrome でHTTP/2が使えない。いい加減どうにかしてくれ〜

certbotコマンドへのシンボリックリンクは現状張られていないのでletsencryptコマンドを使う。

独自ドメインを使う場合は事前にDNSをインスタンスに向けておくこと。(というかEC2のパブリックDNSではLet's encryptは使えなさそう。ビルド待ちの間にしておけると良さそう。)

$ sudo su -
# letsencrypt auth --webroot -d {your-domain} -w /var/www/vhosts/{instance-id}/

初回は登録するメールアドレスとか聞かれる。

Congratulations! のメッセージが表示されていれば成功。

/etc/nginx/conf.d/default-ssl.confssl_certificate,ssl_certificate_keyを発行した証明書のパスに書き換え。

    ...
    ssl_certificate     /etc/letsencrypt/live/{your-domain}/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/{your-domain}/privkey.pem;
    ...

反映させる。

# service nginx reload

設定したドメインでhttpsでアクセスして証明書エラーが出ていないことが確認できれば成功。

以後は通常のAmimoto同様に使えば良い。

スクリーンショット 2017-01-10 5.40.31.png


……CPUクレジット食い過ぎ💢
スクリーンショット 2017-01-10 5.43.33.png

めっちゃ時間かかるしCPU食うし簡単というのは看板に偽りしかなかった気もする

普通にやったほうが絶対はやい……

$ cd /tmp
$ sudo yum install python27-pip python27-virtualenv augeas-libs dialog gcc libffi-devel openssl-devel system-rpm-config
$ sudo mkdir /opt/letsencrypt
$ sudo virtualenv /opt/letsencrypt/
$ sudo /opt/letsencrypt/bin/pip install certbot
$ sudo ln -s /opt/letsencrypt/bin/certbot /usr/local/bin/certbot
1
3
0

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
1
3