ぽんぽんぽぽぽん

”ぽん”が色々書きます。(ITのことや、ソシャゲ、スロットのこととかw...etc)

Let's Encrypt導入してみた(AWS)

こんにちは。ぽんです。

最近、セブンナイツにハマってます。

ただ、、、ガチャからセブンナイツでなさすぎて若干萎えてます。

さて、Let's Encryptについてです。

2016年4月12日に正式サービスが開始しましたね。

↓本家ホームページ↓

Let's Encrypt 総合ポータル

無料で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ヶ月になってるなー。自動化はまた確認