眠気

戯言とメモ

adent

書こうと思ってた日にびっくりするほど寝てしまったので適当に書きました。

Let's Encrypt使った話

この記事は OIC ITCreate Club Advent Calendar 2015 16日目(12/16)の記事です。

Let's Encryptにメール送って返ってきたのをしばらく放置していたのですが、

いつの間にかpublicBETAになってて、

やってみると10分くらいで出来たので、

通信を暗号化したいなどの需要には答えてくれるのではないかと思い、書きました。

git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt-auto

これだけでapt-getとか勝手に走って、その通りに答えれば証明書が得られるのですが、

それだと記事としてもアレなので、http2にするためのソレなどを書こうかなと。


nginxに1.9.5からhttp2が取り込まれたということで、nginxでhttp2を使用するには1.9.5以上が必要なのですが、

気がつけば1.9.9がリリースされてたりするので、好きな感じのバージョンをインストールして頂ければなと。

ソースからビルドする場合はnginx: downloadなどから好みのバージョンをインストールし、ビルドして下さい。

aptの場合は/etc/apt/sources.list

deb http://nginx.org/packages/mainline/debian/ squeeze nginx
deb-src http://nginx.org/packages/mainline/debian/ squeeze nginx

とか書いてアレすれば良いんじゃないかなと思います。

デフォルトだと

./letsencrypt-auto certonly --webroot -d ドメイン名 --webroot-path /usr/share/nginx/html

的な感じにしておけば、/etc/letsencrypt/live/ドメイン名/

cert.pem  
chain.pem  
fullchain.pem  
privkey.pem

が作成されるので、

/etc/nginx/nginx.conf

server {
         listen 443 ssl http2;
         server_name  ドメイン名;
        ssl_certificate      /etc/letsencrypt/live/ドメイン名/fullchain.pem;
        ssl_certificate_key  /etc/letsencrypt/live/ドメイン名/privkey.pem;
}

みたいな設定でnginxを再起動すれば一応出来るんじゃないかなと思います。

apacheの場合はデフォルトでプラグインが用意されてるので--apacheなどを付ければカンタンだと思います。

また、80か443しか受け付けてくれないので、サーバを止めずに認証ファイルを受け取る場合はwebrootプラグインを使います。

ちなみに無料のためか証明書の有効期間は90日しかないので、90日内に再度証明書を発行しないといけません。

cronでやれば良いので、こういう感じでやれば良いと思います。

おわり