Help us understand the problem. What is going on with this article?

AWS EC2にLet's Encryptを導入してみた

More than 1 year has passed since last update.

開発用EC2インスタンスはhttpで使用していたのですが、セキュリティ対策を入れたりでステージング環境に近くなってきたので簡易的にSSLを導入しようとLet's Encryptを使用してみました。
思ったより簡単に導入できたので参考になれば幸いです。

Let's Encryptとは?

簡単に言うと無料でオープンな証明書を発行できるサービスです。手続きも不要で、サーバーとドメインさえ持っていれば即時発行可能です。(Chromeでも緑の鍵マークになるので安心です)
※私もどこかのタイミングで寄付します!

導入手順

さっそく導入してみましょう。
環境は AmazonLinux + CentOS6 + Apache2.4 です。(バージョン違いは適宜読み替えてください)
前提として上記は導入済みとします。まだの方はAWSのページなどを参考にインストールまで済ませてください。

1. AWSのセキュリティグループを設定する

セキュリティグループのインバウンドのHTTP(80)、HTTPS(443)を許可(0.0.0.0/0)にします。
これをやらないと後ほど証明書を自動取得する際にエラーになります。
→(2017/08/29追記)自分の環境では「urn:acme:error:connection」というエラーになりました

2. certbotインストール

対象のインスタンスにSSHでログインし、以下を実行します。(rootじゃなければsudoつける)
権限も変更しておきましょう。

# curl https://dl.eff.org/certbot-auto -o /usr/bin/certbot-auto
# chmod 700 /usr/bin/certbot-auto

3. 証明書の発行

cerbotのインストールが成功したら以下のコマンドで自動生成します。

# certbot-auto certonly --webroot -w /var/www/html -d test.example.com --email hoge@example.com
オプション 説明
certonly 証明書の作成
--webroot ウェブサーバーモードを指定
-w /var/www/html ドキュメントルートのパス(自環境に合わせてください)
-d test.example.com 認証対象のドメイン名(ここでは例として左記)
--email hoge@example.com 連絡用のメールアドレス(ここも例として左記)
--debug Amazon Linuxはまだ実験的だそうでこのオプションつけないと実行できませんのでご注意。  →2017年現在は不要(むしろエラーになりました)

4. 利用規約

青い画面で利用規約の同意を求められるのでAgreeする

5. 成功確認

以下のメッセージが出れば成功です。

IMPORTANT NOTES:
 - Congratulations! ...

6. 生成された証明書の確認

しばらくすると以下のディレクトリに証明書が生成されます。

/etc/letsencrypt/live/test.example.com/
    cert.pem
    privkey.pem
    chain.pem

7. mod_sslインストール

Apacheにmod_sslを未インストールならインストールします。

# yum install -y mod24_ssl

参考元

8. ssl.confに証明書パス設定

/etc/httpd/conf.d/ssl.confに先ほど取得した証明書のパスを設定します。

...
SSLCertificateFile /etc/letsencrypt/live/test.example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/test.example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/test.example.com/chain.pem
...

9. Apache再起動

Apacheを再起動すれば反映完了です!ブラウザでhttps://~ で確認してみてください!

10. その他

上記の後に、http→httpsの強制リダイレクトや、証明書の自動更新設定などやっておいたほうがよい操作がありますが、ここでは導入までとします。

今まで証明書と言えば高いお金を払い、電話などで確認必須なのでとても時間がかかるイメージでしたが
非常に簡単にSSL化出来たのでとてもテンション上がりました!ぜひみなさんもお試しください!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした