Let's Encrypt

スポンサーリンク

概要

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

かなり前から常時SSL が当たり前の世の中になってきていますので、とりあえず https 化しておくという用途では非常に使えます。

導入方法

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ヶ月です。
わりとすぐに有効期限が切れてしまいますので、自動的に更新するよう設定しておくのが良いです。
下記は証明書更新の例です。
-q は表示メッセージの抑制、–post-hook は更新した場合に実行するコマンドです。

 # ./certbot-auto renew -q --post-hook "systemctl reload httpd"

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

コメント

タイトルとURLをコピーしました