CentOS6でLet’s Encrypt!

Share on Facebook7Tweet about this on TwitterShare on Google+0Share on LinkedIn0

こんにちは、mi2yo4です。

GWも終わってしまってはや一週間が経とうとしていますが、皆さん心の復帰は出来ていますでしょうか?
先日、私のこのblogへの投稿が非公開のものを含めて100を超えたことに気づきました。
何か良いことがあるといいな~、と思ってエントリしています。

DSC_0186e

さて、今回はLet’s Encryptの紹介とインストールをした記録を書いてみようかと思います。


Let’s Encryptとは

Let’s Encryptとは何ぞや?という話ですが、かいつまんで言えば下のような事です。

Let’s Encrypt は、認証局(CA)として「SSL/TLSサーバ証明書」を無料で発行するとともに、証明書の発行・インストール・更新のプロセスを自動化することにより、TLS や HTTPS(TLSプロトコルによって提供されるセキュアな接続の上でのHTTP通信)を普及させることを目的としているプロジェクトです。

私達がWebブラウザで何かしらのサイトにアクセスする場合、通常は通信内容が暗号化されていないhttp通信と暗号化されているhttps通信のどちらかを使用しています。
以前はhttp通信が多かったのですが、現在では主要なサービス(google, facebook等)はデフォルトでhttps通信を使用しています。

やっぱり、通信内容が暗号化されている方がよりセキュリティ的に安心ですからね。

ところで、webサービス上でhttps通信を行うためにはサーバにSSL証明書(電子証明書)を設置する必要があります。これまで、SSL証明書は認証局(CA、シマンテックやジオトラストなど)から発行されるため、結構な金額が必要だったのです。

そこで、「Let’s Encrypt」ですよ!
上記の引用内容のように、ドメイン名を所持していれば、Let’s Encrypt を使うことで誰でも信頼された証明書を無料で取得できるようになります。今回のようにhttps通信を使いたい目的ですと、一番簡単&手軽に導入できると思います。

しかも運用も自動化されているので、これは試してみる価値がありますね!


CentOSへのLet’s Encryptのインストール

Let’s Encryptのインストール作業は簡単です…が、CentOS6の場合はちょっと追加で対応する事があります。
CentOS6ではPython2.6が標準で、Let’s Encryptが必要とするPython2.7はインストール出来ません。
下のように追加でインストール作業が必要です。

# yum update
# yum install centos-release-SCL
# yum install scl-utils python27 python27-python-tools
# scl enable python27 bash

そして、Let’s Encryptのインストールと設定です。

# cd /usr/local
# git clone https://github.com/letsencrypt/letsencrypt
# letsencrypt/letsencrypt-auto certonly -a standalone -d hogehoge.hugahuga.jp

後は画面上の指示に従うだけでインストール完了です。
あ、インストール前にWebサービスを止めておく必要がありますね。
(設定が終わればWebサービスを再開してOK)

※最近ではcertbotという名前に変わったそうです。インストールはこちらを参考にしてみて下さい。
https://letsencrypt.jp/usage/install-certbot.html#OtherUNIX

apacheへの組み込み

Webサーバにはapacheを利用しているので、そこにSSL証明書類を設定します。

# vi /etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/letsencrypt/live/hogehoge.hugahuga.jp/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/hogehoge.hugahuga.jp/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/hogehoge.hugahuga.jp/chain.pem

設定が終わったらapacheを再起動させます。これでhttpsで繋いでみてください。

今回私がハマった点は、yum updateをせずにcentos-release-SCLなどをインストールした事ですね。
updateしておかないとpython27パッケージを見つけてくれませんでした。
もし、そのような状態に陥ったらyum update後にcentos-release-SCLを削除→再インストールをしてみて下さい。

ではまた!


今回の情報元