Let's Encrypt

最終更新日時:2017-02-20 18:02:20
Web系

Let's Encrypt は無料で利用可能な証明書です。
認証局としてどの程度の信頼性があるのかは未知数ですが、とりあえず機能的には全く問題がありませんので、証明書を必要としているが費用は出せない、、、といったケースでは便利に使えるかと思います。
一般の証明書についての仕様を理解している人であれば、導入も容易かつスピーディーに行うことが出来ます。

参考:常時SSL


導入方法


Let's Encrypt のサイトは、https://letsencrypt.org/ です。
しかし、CentOS6 の例にはなりますが、基本的には上記サイトを見なくても導入できます(^_^;

導入するためには、Certbot というコマンド駆動型のクライアントソフトを使用します。
まずは、https://certbot.eff.org/ から使用する Web サーバと OS を選択し、表示された内容を元に Certbot をダウンロードします。
その後、適当な場所に設置し、chmod で適切にパーミッションを設定します。

あとは、Certbot を実行するだけです。
最初の実行時には、依存関係のある rpm をインストールする処理が走りますので root 権限が必要です。( root ユーザーもしくは sudo 可能なユーザー)

 # ./certbot


ちなみに、certbot には様々なオプションがありますが、CentOS6 の Apache 使用の場合には、上記のようにオプション無しでOKでした。
実行すると、インストールするドメイン名や連絡用のメールアドレス等をインタラクティブに聞いてきますので、適宜入力します。
基本はこれだけで完了です。

私の場合は、httpd.conf の内容が特殊だったのもあって手動で修正が必要でしたが、ほぼコピペで済む程度の修正でした。


python2.6 の問題


CentOS のデフォルトは、python-2.6 系です。
python-2.6 を使用していると以下のような警告が出力されることがあります。
※適宜改行してます

 /root/.local/share/letsencrypt/lib/python2.6/site-packages/cryptography/__init__.py:27:
 DeprecationWarning: Python 2.6 is no longer supported by the Python core team,
 please upgrade your Python. A future version of cryptography will drop support for Python 2.6


要するにもっと新しい python を使えということなのですが、これだけのためにアップデートするのも、、、ですよね。
/root/.local/share/letsencrypt/lib/python2.6/site-packages/cryptography/__init__.py はを見てみると、以下のような箇所があります。
ここを全てコメントにしてしまえば、この警告は抑止出来ますので、自己責任でどうぞ(^_^;

 if sys.version_info[:2] == (2, 6):
    warnings.warn(
        "Python 2.6 is no longer supported by the Python core team, please "
        "upgrade your Python. A future version of cryptography will drop "
        "support for Python 2.6",
        DeprecationWarning
    )


証明書の更新


Let's Encrypt の証明書の有効期限は3ヶ月です。
わりとすぐに有効期限が切れてしまいますので、自動的に更新するよう設定しておくのが良いです。
証明書の更新は以下となります。

 # ./certbot-auto renew


これを定期的に自動で実行するよう cron 等で設定しておきましょう。

お問い合わせは 掲示板 にて。