ちょいと前ですが、正式サービスが開始されたようなのでLet’s Encrypt を使ってみた。
README / Introduction — Certbot 0.7.0.dev0 documentation
インストール
user@webserver:~$ git clone https://github.com/letsencrypt/letsencrypt
user@webserver:~$ cd letsencrypt
user@webserver:~/letsencrypt$ ./letsencrypt-auto --help
インストールなのかヘルプなのかよくわからないコマンドですが・・・。
インストールが終わるとパスが表示されるので、パスを通すなりなんなりする。
詳しい使い方はヘルプで。
$ letsencrypt --help all
SSL証明書の発行の仕方
nginxはbuggyだって書いてるので、certonlyで行う。apacheならインストールまでしてくれるっぽい。
nginxを使っていて、
- domainが hoge.com
- webのrootが /var/www/hoge.com
の場合
まず、普通にウェブを80ポートで動かして、アクセスできる状態にする。
認証の仕組みとしては、上記の webrootに認証用のファイルを配置して、letsencryptのサーバーからそこにアクセスして確認するっぽい。
証明書の発行は次のコマンド
sudo letsencrypt certonly --webroot -d hoge.com -w /var/www/hoge.com
処理が終わると、/etc/letsencrypt/live/hoge.com に証明書が保存される。
nginxへの設定
今回はすでに別のSSL証明書を設定しているnginxにドメインを追加しての設定だったので、SNI機能が有効かを確認。
$ nginx -V 2>&1 | grep SNI
TLS SNI support enabled
問題なければ、設定ファイルをつくる。
server {
listen 443;
server_name hoge.com
ssl on
ssl_certificate /etc/letsencrypt/live/hoge.com/cert.pem
...
証明書の更新
サーバーにインストールしているすべての証明書のうち期限が近い証明書を更新する。
sudo letsencrypt renew
個別に更新したい場合には、発行時と同じコマンドを動かし、Renewを選択する
sudo letsencrypt certonly --webroot -d hoge.com -w /var/www/hoge.com
直接操作できないサーバーの場合
FTPのみの場合であれば、–manualで表示された内容を自分で設置すると同じようにSSL証明書を作成できる。
sudo letsencrypt certonly --manual -d hoge.com