Let's Encrypt導入してみた(AWS)
こんにちは。ぽんです。
最近、セブンナイツにハマってます。
ただ、、、ガチャからセブンナイツでなさすぎて若干萎えてます。
さて、Let's Encryptについてです。
2016年4月12日に正式サービスが開始しましたね。
↓本家ホームページ↓
無料でSSLが導入(かつ自動更新される!?)ということで自分のサービスが乗っているサーバー(AWS)に入れてみました。
基本的にはLet's Encrypt の使い方 - Let's Encrypt 総合ポータルの通りにやっていけば設定完了ですが、
一部詰まったのでそれも含めて書いていきます。
導入手順
① Let's Encryptのクライアントをダウンロード
サーバーに入って、適当なところで以下コマンド実行
※rootいらないよ!
$ git clone https://github.com/letsencrypt/letsencrypt
② テスト実行+必要なモジュールをインストール
cd letsencrypt sudo ./letsencrypt-auto --help --debug
※ Pythonとか、必要なものが自動でインストールされます。 ※ AWSの場合--debugをつけないとダメ
③ 証明書取得
sudo ./letsencrypt-auto certonly -a standalone -d [SSL化したいドメイン]
※ 変な画面が立ち上がりますが、メールアドレスとか入れて終了
ここで!?なんかエラーが起きるので、見てみると、
80番ポートがListen状態だと人相がうまくいかないらしい。
ということで一回apache止める
sudo service httpd stop
もう一回実行
sudo ./letsencrypt-auto certonly -a standalone -d [SSL化したいドメイン]
あれ。。。うまくいかん。。。
AWSにログインしてセキュリティグループのインバウンドをチェック。
443うけいれてないっすね〜。見事に拒否ってますね〜。
はい、許可ポート追加。
もう一回実行
sudo ./letsencrypt-auto certonly -a standalone -d [SSL化したいドメイン]
はいオッケー。
ここでapache起動
sudo service httpd start
これで/ect/letsencrypt内に証明書ができているはず!
④ 証明書設定
あとはいつも通りSSLの設定をしてあげたらよい。
※注意点は、apache 2.4.8 以降(またはnginx)、apache 2.4.8 未満で使うファイルが違うってこと
★ apache >= 2.4.8
サーバ証明書と中間証明書が結合されたファイル
SSLCertificateFileに指定
/etc/letsencrypt/live/ドメイン名/fullchain.pem
SSLCertificateKeyFileに指定
/etc/letsencrypt/live/ドメイン名/privkey.pem
★ apache < 2.4.8
SSLCertificateFileに指定
/etc/letsencrypt/live/ドメイン名/cert.pem
中間証明書
SSLCertificateChainFileに指定
/etc/letsencrypt/live/ドメイン名/chain.pem
SSLCertificateKeyFileに指定
/etc/letsencrypt/live/ドメイン名/privkey.pem
オッケー!ブラウザから確認して終了。
期間が3ヶ月になってるなー。自動化はまた確認