【Let’s Encrypt】certbot renew で Type: unauthorized エラーを解決した

certbot renewでエラーが出るドメインがありました。
いろいろと試すたびにエラーの種類が変わり、最終的に

このエラーに落ち着きました。
いろいろ調べて試しても解決できなかったのですが、
私の場合、ウェブルートをオプションで明示的に指定すると解決しました。

一度手動で成功すれば、後日

で一括更新してもうまくいきました。

【Linux】CentOS5でLet’s Encryptを使ってマルチドメインのSSL証明書を発行する

CentOS5でシステムを運用しています。2010年にリリースしたシステムです。
新しいOSに乗り換えるべきなんですが、いろいろと複雑な事情があり、もう少し延命しなければなりません。

このシステムのSSL証明書を、無料のLet’s Encryptで取得することになりました。
Let’s Encryptについての記事はこちら

SSL証明書は無料で取得できる時代に

また、同じサーバー上で、
本番環境の「www.ドメイン名」とステージング環境の「stage.ドメイン名」が動いており、
マルチドメイン証明書を取得することにしました。

しかし、OSが古いことが原因で、途中さまざまな壁にあたり、都度、対処が必要でした。

以下、備忘録です。

まず、Let’s Encryptを利用するために公式の「certbot」というツールがあるのですが、
これがCentOS6以降でないと使えません。
いきなりの壁です。

しかし、CentOS5でも使える「dehydrated」という非公式のツールがありますので
こちらを使ってSSL証明書を取得することにします。

dehydratedはgitでインストールしますが、
CentOS5では標準でgitはありません。
そこでgitのインストールから始めます。

CentOS5にgitをインストールするため、EPELリポジトリを追加します。

しかし、ここでまた問題が。
CentOS5は2017年3月31日でサポートが終了したため
公開していたミラーサイトからリポジトリが削除されています。

そこで、古いOSをyumリポジトリとして公開している

http://vault.centos.org/

というサイトがありますので
そこをyumリポジトリに追加してgitをインストールします。

を開きます。

という行がいくつかあります。
この行をコメントアウトし、代わりに次の行を追加します。

6箇所くらいあるので、それぞれ、上記の変更を行います。
私の環境はCentOS5.5ですので上記のディレクトリに「/5.5/」とありますが、
ここはバージョンによって適宜変更してください。

これでリポジトリが登録できたことになっているので、
yumでgitをインストールします。

gitがインストール出来たら、やっと目的のツール「dehydrated」のインストールです。

インストールできたら、さっそくdehydratedを使ってSSL証明書を取得してみます。

まず、一時ディレクトリを作成します。

次にApacheの設定ファイルを作成します。

dehydrated.confの内容は下記のとおりです。

ここまででApacheを再起動します。

次に、dehydratedの設定ファイルを作成します。
dehydratedをインストールした場所に移動し、

同じディレクトリにdomains.txtというファイルを作成します。

このファイルには、SSL証明書を発行するドメインを記述します。
このとき、行を分けて複数のドメインを記述すると
ドメインごとに証明書が発行されますが、
1行にスペース区切りで複数のドメインを記述すると
1つのマルチドメイン証明書として発行されます。

今回は目的だったマルチドメイン証明書の記述を行います。

最初に記述したドメインがコモンネームとなります。

そして、証明書発行の前に、アカウントを登録する必要があります。

Done!と表示されたら完了です。

いよいよ証明書の発行です。

Done!と表示されたら証明書の発行完了です。
準備が大変でしたが、あっけなく発行できました。

あとは、ApacheのVirtualHostの設定で
複数のドメインに対して証明書ファイルを設定します。

いろんな書き方があると思いますが
私はssl.confにすべて記述しています。

ssl.conf(一部)

Apacheを再起動して完了です。

あとは、自動更新の設定ですが、cronで以下のようなコマンドを実行するだけです。

これで証明書の更新も勝手にやってくれます。たまにログは確認しましょう。

これでCentOS5でもLet’s Encryptでマルチドメイン証明書が利用できました。
無料ってのがすごいですね。

【Linux】とうとうSSL証明書は無料で取得できる時代に

昔はSSL証明書は個人が気軽に導入できるような安いものはありませんでした。
今は千円くらいで取得できるものがあるので個人でも気軽に取得できますよね。

そしてとうとう、SSL証明書は無料で取得できる時代になったようです。

Let’s Encrypt 総合ポータル(日本語)

開発サーバー(CentOS6.5)で取得してみました。
(上記の公式サイトで環境ごとに導入方法の説明があります)

まず、EPELリポジトリの追加が必要だそうです。

これはすでに追加済みでした。

次に、公式サイトからクライアントソフトを直接ダウンロードします。

ダウンロードしたファイルに実行権限をつけて実行します。

ドメイン名とメールアドレスを聞かれるので答えます。

もうこれで証明書が取得できたようです。
認証メールが来ていたのでメール内のURLをクリックしておきます。

を見ると、たしかに証明書ファイル等があります。

ではApacheの設定を編集して、取得した証明書に切り替えてみます。

Apacheを再起動して、ブラウザでアクセスして証明書を確認すると、

おお、できてる!
こんなに簡単だとは思いませんでした。

有効期限が90日と短いようですが、定期的に

をすればいいみたいですね。
cronに設定しておけば、もうSSL証明書更新作業に煩わされることはありません。たぶん。