126
135

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2016-08-09

開発用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化出来たのでとてもテンション上がりました!ぜひみなさんもお試しください!

126
135
4

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
126
135

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?