potpro (ぽとぷろ)
Full-stuck engineer(Not Full-stack)
JS/PHP/Go/Docker/Nginxなど。技術または趣味寄りの発信ブログです。
全 85 記事SSL証明書”Let’s Encrypt”でhttps環境を構築した
SSL証明書”Let’s Encrypt”でhttps環境を構築した
ついに、以前記事で紹介した、Let's Encryptがpublic Betaになり、誰でも使えるようになりました。
それ以前に、自分はClosed Betaに参加していたので、それで実は結構前から動かしていました。
今回は、どんな感じで動くのかのレビュー記事です。
前の記事:無償利用で使えるSSL証明書”Let’s Encrypt”を仮想環境で動かしてみたかった
Preview版ではvirtualenvを自分で作成しないとならないため、割と手間でしたが、
今回は、 ダウンロードした後に./letsencrypt-auto
というコマンドを打つだけで、 必要なもののインストールから、let's Encrypt clientのコンパイル、Apacheやnginxのインストール、そしてSSLの導入、全てを自動で行ってくれるようになり、さらにわかりやすく、楽になりました。
これだけでhttps対応のWebサーバが最初から作れるっていうことですね。
自分のサーバのnode.jsでプロキシを組んでるので、SSL証明書はnode.jsに組み込みます。 なので、スタンドアローン版を選択し、生成された証明書を手動で組み込みます。
スタンドアローンの場合、本当にそのドメインが存在しているか確認のため、80/443ポートを使ってlet's EncryptのAPIにアクセスしてるような挙動をします。
なので、既にWebサーバを立てている人は一時的にサーバが使えなくなります。まあ設定は数分で終わりますが。 Apacheやnginxの場合でも、自動で作ると(多分)SSLの設定も勝手に作られちゃうと思うので、 知識のある人ならスタンドアローンで証明書だけ作って、自分で設定を作って組み込んだほうがいいかもしれません。
証明書に関しては、/etc/letsencrypt/live
に格納されています。
- privkey.pem (サーバ秘密鍵)
- cert.pem (サーバ証明書[公開鍵])
- chain.pem (中間CA証明書)
- fullchain.pem (サーバ公開鍵+中間CA証明書) が入ってます。
node.jsの場合は、privkey.pem、cert.pemを組み込めば動きました。
node.jsのhttps対応に関しては、この記事を参考に。
そして、導入したものがこちら。
オレオレ証明書ではなく、ちゃんとLet's Encryptから正式なものと証明されています。 これで毎回Chromeさんに情報抜き取られるサイトかもしれないという報告を受けなくて済みます。
自分のサイトなのに。 まだ証明書の期限は短く、3カ月(90日)となっていますが、
ベータではなく正式版になれば、期間が延び、自動更新も可能になるかもしれません。