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対応に関しては、この記事を参考に。
    [node.js]HTTPS通信に対応させてみる(SSL-リバースプロキシ環境を構築する)
    そして、導入したものがこちら。
    letsencrypt
    オレオレ証明書ではなく、ちゃんとLet’s Encryptから正式なものと証明されています。
    これで毎回Chromeさんに情報抜き取られるサイトかもしれないという報告を受けなくて済みます。自分のサイトなのに。
    まだ証明書の期限は短く、3カ月(90日)となっていますが、
    ベータではなく正式版になれば、期間が延び、自動更新も可能になるかもしれません。

3 thoughts on “SSL証明書”Let’s Encrypt”でhttps環境を構築した”

  • 情報ありがとうございます。
    いつも見ています。

    確か、cronで実現できると言ってましたよ。
    Let’s Encrypt側で用意して欲しいですよね。
    分かればで良いのですが、スタンドアロンの方で各ファイルの置き場所を指定する方法とかご存知ではないでしょうか?

  • potpro

    それらしいものが無いか、
    ./letsencrypt-auto help allで確認したところ、
    –cert-path CERT_PATH
    –key-path KEY_PATH
    –fullchain-path FULLCHAIN_PATH
    –chain-path CHAIN_PATH
    というオプションがあり、これらを指定するとそれぞれのファイルの置き場所を指定することが可能のようです。
    しかし公式ドキュメントに乗ってないのでちゃんと動作するかは不明です。
    (未確認ですので保証ははしません)

    • >potpro
      ありがとうございます。
      時間ができたらやって見ますね。
      やはり公式Documentに乗ってないとは。。。

      Twitterのフォローもありがとうございます。

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)