satakesatakeの日記

 | 

2016-04-20

CentOS5でLet's Encrypt

15:54

Let's Encryptのベータが外れてめでたいので、こいつを利用して証明書をゲットしちゃおうという話です。ただし、CentOS5で。

証明書取得のために必要なクライアントソフト

公式に配布されているのは、下記クライアントソフト。

https://github.com/letsencrypt/letsencrypt

導入にはあらかじめgitが必要。参照→https://letsencrypt.jp/usage/

立ちふさがるPythonの壁

このクライアントのヤロー、Python 2.7を要求する。CentOS5にyumPythonをした場合、Python 2.4になります。epelリポジトリを使っても、Pyrhon 2.6までしか手に入らない。しかもpythonコマンドは2.4にリンクされたまま。これはイケてない。

下記のURLのような試みもあるにはあるが、無理やりPython 2.7をインストールし、LE_PYTHON=python2.7 ./letsencrypt-autoとか実行しても、結局、中で使われるPythonは2.4で、pipのバージョンが低いと怒られる。益々、イケてない。

https://kyle.io/2015/12/lets-encrypt-on-centos5/

非公式クライアントを使う

なんかもう、これ以上サーバの環境を汚すのも嫌だなと思ってあきらめかけたが、非公式クライアントなるものがあるらしい。

例えばこれだ→https://github.com/lukas2511/letsencrypt.sh

以下のブログが参考になる(& ここで勧められてた)。

http://blog.osakana.net/archives/6798

このブログの手順通りでだいたい問題ない。gitからダウンロードした場所は、/root以下を選択した。何故そうしたかは、特に意味はないので、どこでも良いと思う。また、自分の場合、複数のドメインの証明書は必要なかったので、domain.txtは利用せず、以下のコマンドを実行した。--domainオプションの次に取得したいドメイン名を書く。

# ./letsencrypt.sh --config /root/letsencrypt.sh/config.sh --domain example.com --cron

というか、むしろ、domain.txtの利用を試みたらエラーが出たのであきらめた。--domain domain.txtとかやっちゃったせいだろう。

なお、Let's Encryptはドメイン認証タイプのSSLなので、現実に存在するドメインが必要だ。http://example.com/.well-known/acme-challenge/ というURLにアクセスすることで実在を確認するっぽい。

首尾よく、成功すれば、certs/example.com以下に証明書や、中間CA証明書ができあがる。ちなみに、fullchain.pemってのが中間CA証明書だ。

インストール

ググればどっかに書いてあるので割愛

総括

クライアントプログラムさえ動けば楽勝でした。新しめのOSの場合、公式クライアント使うのが無難だと思われる。

無料でSSL取得できるなんて、いい時代ですね。気を付けたいのが有効期限だ。3ヶ月しか持たないので、3ヶ月に一回、cronなんかでスケジュール組めば、自動的に更新されるに違いない。やってないけど。

ゲスト



トラックバック - http://nextstageone.g.hatena.ne.jp/satakesatake/20160420
 |