Let’s Encrypt は誰でもTLS(SSL)を無料で使えるようにしようと言うプロジェクト。個人でもhttpsで簡単に暗号化できるようになります。詳しいことは、プロジェクトのページを見てください。https://letsencrypt.org/
正式公開の前にベータテストが開始されましたので試してみました。
具体的にはローカルのコンピューターにpythonの証明書管理用のプログラムをインストールして、プライベートキーの生成から署名要求(csr)の作成、サーバ証明書、中間証明書の取得までをほぼ全自動でやってくれるみたい。
上記のような仕組みなので、gitやwebサーバの動いている環境で使うのが前提のようです。要は、証明書を必要としているサーバの上でやるのが一番手っ取り早い。いつの間にかgitが当たり前の時代になってますな。
最初、Mac OSXの上でやろうとしたけど、すごく実験的だからねと言われて、うまく動きそうになかったので早々に断念しました。(結局Linuxでやりました)
git clone https://github.com/letsencrypt/letsencrypt
まずはこんな風にLet’s Encryptのプログラムたちをローカルにコピー。次に、letsencryptディレクトリに移動して、
./letsencrypt-auto --agree-dev-preview --server \ https://acme-v01.api.letsencrypt.org/directory auth
このコマンドを実行。この時にtcp/80を使ってドメインの存在証明をするので、既存で動いているapacheなどは一時的に止めておく必要があります。
するとゴニョゴニョといろいろ進んで、メールアドレス入れたり、使用許諾を確認したりすると、次の画面が出ます。
ここで、証明書の欲しいサーバのFQDNを入れます。
すると、/etc/letsencrypt/live/(サイトのFQDN)/の中に証明書が出来上がっています。(もう既存のapacheを起動してもOK)
lrwxrwxrwx 1 root root 41 Nov 1 17:41 cert.pem -> ../../archive/(サイトのFQDN)/cert1.pem lrwxrwxrwx 1 root root 42 Nov 1 17:41 chain.pem -> ../../archive/(サイトのFQDN)/chain1.pem lrwxrwxrwx 1 root root 46 Nov 1 17:41 fullchain.pem -> ../../archive/(サイトのFQDN)fullchain1.pem lrwxrwxrwx 1 root root 44 Nov 1 17:41 privkey.pem -> ../../archive/(サイトのFQDN)/privkey1.pem
cert.pemがサイトの証明書、chain.pemが中間証明書、fullchain.pemがサイト証明書と中間証明書が一体になったもの、privkey.pemがプライベートキーです。これらをWebサーバに設定します。(実体のファイルは1がついてますけど、証明書更新とかすると数字が増えるのかな?)
私はdebianのapache2を使っていますので、/etc/apache2/sites-available/default-sslを設定します。(抜粋)
SSLCertificateFile /etc/letsencrypt/live/(サイトのFQDN)/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/(サイトのFQDN)/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/(サイトのFQDN)/chain.pem
こんな感じ。あとはapache2を再起動するとhttpsでつながります。
ピンバック: Let’s Encryptの本格運用 | n10の個人的なメモ