くろむさんです。

そういえば Let's Encrypt が Public Beta になりました。

https://letsencrypt.org/ 

そこで自分のサーバに Let's Encrypt を試してみましたので、何をしたのかを記録にまとめて見ました。
 
 
環境としては CentOS release 6.7 (Final) が入ったさくらのVPSを使用しました

インストールガイド(https://letsencrypt.readthedocs.org/en/latest/using.html#installation)に従いインストール開始

git clone で必要なものを受け取る

$ git clone https://github.com/letsencrypt/letsencrypt
$ cd letsencrypt

受け取ったあとで

$ ./letsencrypt-auto
を実行したが、、、

自分のサーバに導入してあった python が 2.6 であるが故にこのままでは進むことが出来なかった。
ということで python2.7 を導入してからもう一度してみることに、

そのために使用したパッケージとして SCL (Software Collections) を用いて python2.7 を導入した。
SCL を導入することで、野良repoを導入しなくても新しめのパッケージが降ってくる点や、既存のものを置き換えないために、使い方によっては同時に使うことも出来るという点もある。

そこで 調べたら行き着いたページを見ながら導入をした
$ sudo yum install centos-release-SCL
$ sudo yum install python27 python27-python-tools
$ scl enable python27 bash 

 実行後もう一度 ./letsencrypt-auto certonly を実行してあとは対話しながら生成をした。
 証明書のみを生成する場合は certonly をつけることで生成されるみたい。

 証明書を生成したら
 /etc/letsencrypt/live/$domain
に生成したものが出来る。中身として
  • cert.pem 
  • chain.pem 
  • fullchain.pem 
  • privkey.pem
の4つが出来る。それらを Apache に設定していく。(変更したところだけ書くとして)(fullchain.pem は nginx の設定時に必要であって Apache には必要なかった。)
$ vim /etc/httpd/conf.d/ssl.conf

SSLCertificateFile /etc/letsencrypt/live/$domain/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/$domain/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/$domain/chain.pem
設定した後で apache を再起動することで Let's Encrypt を利用することが出来た。
(ただ証明書を生成する時に Automated Certificate Management Environment  (ACME) Protocol で通信する際に Webサーバを起動していた場合は止めないと生成できない(ここどうにかしてならないうまく設定できないのだろうかとつくづく思っていたりします、、、)) 

ちなみに自分のWebサイトをブラウザで表示してみると、

27

ちゃんと Let's Encrypt と書いてありました。