ラージビッグバナー(970x90)

Linux

【LetsEncrypt】SSL証明書の自動更新ができなくてログを見てみた結果

更新日:

ビッグバナー(piglog)728px

LetsEncrypt でRedmineを常時SSL化して運用しているが、証明書が自動更新されていないのでログを確認してみました。ログの見方といってもよいですが、更新されたかどうかについてをログから確認する場合に、どこをみればよいの?という点で備忘録がてらメモを残します。

LetsEncrypt のログの見方

ログの保存場所

まずは保存場所ですが、いたって普通に以下です。

これ、ローテートされているように見えるんですが、更新時に実行する certbot コマンドによって行われていて、1回実行するたびにファイル末尾の数字が更新されて新しい letsencrypt.log.1 ができあがります。そしてデフォルトでは削除されないようです。↑では10ファイルほどしか記載していませんが、5ヶ月くらい前までのログが残っている状態でした。1年くらい待てば消えてくれるのか??

ログのローテーションについてはいったん置いておいて話を進めます。

ログの確認箇所

まず、更新が成功した時のログを確認します。

以下のように DEBUG:certbot.storage:Writing をキーにして grep すると新しい秘密鍵や証明書が作成されたことがわかります。

更新が失敗した場合は↑のメッセージは表示されません。

その場合は、以下のコマンドでエラーの内容を確認します。証明書を複数使用している場合でも以下のように対象のドメインとエラーの内容が表示されます。

オプションの -A 4 は指定した文字列の4行後ろまで表示するよ、というものです。

エラー内容は、To fix these~ から始まる部分です。エラー内容の訳は以下。

To fix these errors, please make sure that your domain name was entered correctly and the DNS A record(s) for that domain contain(s) the right IP address. Additionally, please check that your computer has a publicly routable IP address and that no firewalls are preventing the server from communicating with the client. If you're using the webroot plugin, you should also verify that you are serving files from the webroot path you provided.

これらのエラーを修正するには、ドメイン名が正しく入力され、そのドメインのDNS Aレコードに正しいIPアドレスが含まれていることを確認してください。 また、お使いのコンピュータがパブリックにルーティング可能なIPアドレスを持っており、ファイアウォールがサーバとクライアントとの通信を妨げていないことを確認してください。 Webrootプラグインを使用している場合は、指定したWebルートパスからファイルを提供していることも確認する必要があります。

今回更新できていなかった原因はファイアウォールでした。特定のIPアドレスからのみ接続を許可というふうに firewalld で制限しているので、LetsEncrypt からサイトに接続の確認ができずに更新ができていなかったという状況です。

現状、certbot コマンドを cron で回しているのですが、このエラーを回避するためには firewalld無効→certbotで更新→firewalld有効 のスクリプトを書かないといけなさそうです。。。それとも3ヶ月に1回なので手動でやっていくか。。。

この問題はおいおい考えるとして、これで LetsEncrypt のログから正常に更新ができたか、できていない場合はエラーの内容の特定ができるかと思います。

以上です。

↓↓↓ 持っていると便利な一冊。

レクタングル (大)

レクタングル (大)

リンクユニット(レスポンシブ)

-Linux
-, ,

Copyright© ぴぐろぐ , 2018 All Rights Reserved.