LoginSignup
1
1

【備忘録】SSL証明書、更新の手順(Let's Encrypt)

Last updated at Posted at 2023-04-04

はじめに

  • 本記事は、備忘録としてまとめたものになります。
  • 他の方の参考になる可能性も踏まえて、一般公開も行なっております。
  • また記載内容はすべて、正しい内容が記載されているとは限りません。
  • 誤った内容を見つけた場合は、ご指摘をお願いいたします。

この記事は誰向けの記事か?

  • Let's Encryptの証明書の有効期限が切れてしまい、更新したい管理者
  • Let's Encryptを使用したアプリケーションへアクセスできない状態になっている管理者またはユーザー

背景

  • Techcampにて作成したアプリをSSL化するために、Let's Encryptを使用した。
  • しかし突然、アクセスすることができなくなってしまったため、調査と対処を行なった。

運用環境

以下はアプリへアクセスする際に使用していたブラウザの詳細になります。

  • OS:macOS 13.1(22C65)
  • ブラウザ:Google Chrome バージョン: 111.0.5563.146(Official Build) (arm64)

以下はアプリ/サーバー環境の情報になります。

  • 開発言語:Ruby on Rails
  • 開発環境:AWS(EC2、Route53)、Nginx
  • その他:Let's Encrypt

調査

アプリへアクセスすると、以下のような状況となっていたことを確認した。
エラー内容:この接続ではプライバシーが保護されません
スクリーンショット 2023-04-04 14.58.41.png

通信内容を確認すると、以下のような状況となっていた。
エラー内容:このサイトへの接続は保護されていません 証明書が無効です
スクリーンショット 2023-04-04 14.59.08.png

原因:証明書を確認すると、有効期限が日時を経過してしまっていた。
スクリーンショット 2023-04-04 14.59.19.png

この問題に対しての対処法

  • クライアント側
    対処する方法はありません。サーバー管理者に問い合わせて、証明書を更新してもらえるまで待つしかない。
  • サーバー管理者側
    証明書を更新しなければならない。

対処

対処するため、Let's Encryptの証明書を以下の手順で更新した。

EC2へログインする

CRONの内容を確認し、自動更新の設定を確認する

結果としては、1時と13時にルート権限で自動更新する設定がされていた。
しかしなぜ自動更新されていないのかがわからないため、これについては別途調査が必要。

$ sudo crontab -e

または

$ sudo crontab -l

スクリーンショット 2023-04-04 19.30.26.png
スクリーンショット 2023-04-04 19.28.43.png

手動にて更新を行う

SSL証明書の有効期限の確認する

$ certbot certificates

または

$ sudo certbot certificates

更新前にチェックをする

この段階でエラーが出るようであれば、更新は成功しない。

$ sudo certbot renew --dry-run

更新する

以下のコマンドを実行することで、SSL証明書の更新が行われる。

$ sudo certbot renew

アクセスできるかを確認する

その結果、アプリケーションへアクセスすることに成功し、SSL証明書が更新されていることを確認できた。
スクリーンショット 2023-04-04 19.48.20.png

自動更新されていない問題について

CRONをリスタートしてみる

リスタートし、直して様子見をすることとなった。

$ sudo systemctl restart crond
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1