さくら VPS Ubuntu Web サービス

SSL 証明書の更新できない

サイト攻撃を回避するため
https(443) のみをアクセス許可して、http(80)をブロックするようにしてみました。
すると、
Let's Encrypt Expiry Bot
から以下のメールがきてしまいました。
Hello,
Your certificate (or certificates) for the names listed below will expire in 19 days (on 2024-10-20).
Please make sure to renew your certificate before then,
or visitors to your web site will encounter errors.
We recommend renewing certificates automatically
when they have a third of their total lifetime left.
For Let's Encrypt's current 90-day certificates,
that means renewing 30 days before expiration.
See https://letsencrypt.org/docs/integration-guide/ for details.
70vps.net
For details about when we send these emails, please visit:
https://letsencrypt.org/docs/expiration-emails/
In particular, note that this reminder email is still sent
if you've obtained a slightly different certificate by adding or removing names.
If you've replaced this certificate with a newer one that covers more or fewer names than the list above,
you may be able to ignore this message.
For any questions or support,
please visit: https://community.letsencrypt.org/ Unfortunately,
we can't provide support by email.
To learn more about the latest technical and organizational updates from Let's Encrypt,
sign up for our newsletter:
https://letsencrypt.org/opt-in/
If you are receiving this email in error, unsubscribe at:
・・・・・・・
Please note that this would also unsubscribe you from other Let's Encrypt service notices,
including expiration reminders for any other certificates.
Regards,
The Let's Encrypt Team
[要訳]
こんにちは
以下にリストされている名前の証明書(または複数の証明書)は 19日(2024-10-20)で有効期限が切れます。
それまでに証明書を更新してください そうしないと、Webサイトへの訪問者にエラーが発生します。
証明書は、合計有効期間の 3 分の 1 が残っているときに自動的に更新することをお勧めします。
Let's Encrypt の現在の 90 日間の証明書の場合、有効期限の 30 日前に更新する必要があります。
詳細については、https://letsencrypt.org/docs/integration-guide/ を参照してください。

SSL 証明書更新不可の確認

自動更新の確認を行ってみます。
シリアルコンソ-ルを開き、
yamada@********:~$ sudo certbot renew --dry-run
として、実行します。
Saving debug log to /var/log/letsencrypt/letsencrypt.log
- - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/70vps.net.conf
- - - - - - - - - - - - - - - - - - - -
Simulating renewal of an existing certificate for 70vps.net
Certbot failed to authenticate some domains (authenticator: apache).
The Certificate Authority reported these problems:
Domain: 70vps.net
Type: connection
Detail: ***.1**.**3.***: Fetching
http://70vps.net/.well-known/acme-challenge/********:
Timeout during connect (likely firewall problem)
Hint: The Certificate Authority failed to verify the temporary Apache configuration changes made by Certbot.
Ensure that the listed domains point to this Apache server
and that it is accessible from the internet.
Failed to renew certificate 70vps.net with error: Some challenges have failed.
- - - - - - - - - - - - - - - - - - - - -
All simulated renewals failed. The following certificates could not be renewed:
/etc/letsencrypt/live/70vps.net/fullchain.pem (failure)
- - - - - - - - - - - - - - - - - - - - -
1 renew failure(s), 0 parse failure(s)
Ask for help or search for solutions at https://community.letsencrypt.org.
See the logfile /var/log/letsencrypt/letsencrypt.log
or re-run Certbot with -v for more details.
となり、失敗します。

SSL 証明書更新不可の原因

Let's Encrypt の証明書更新では TCP Port 80 ポート解放が必須のようです。
過去には、TCP Port 443 ポートが解放されていれば
Let's Encrypt TLS-SNI-01 方式で更新可能だったようです。
しかし脆弱性が解決できず 2019年2月13日でこれは対応終了になっているようです。
Port 80 はサイト攻撃が激しくポート閉鎖しておきたいのですが、解放するしかないようです。
仕方ないので IP アドレス制限をかけて一部解放することにします。
Let's Encrypt が証明書更新時に使用する IP アドレスは動的に変化しています。
私が認知している IP アドレスは下表の通りです。

Let's Encrypt 更新 IP アドレス

TCP Port 80 ポート IP アドレス制限

Let's Encrypt に使用されそうな IP アドレスのみ解放し残りに対してはアドレス制限をかけます。
さくら VPS の場合、パケットフィルタの利用設定をしてサ-バ攻撃を防御しながら Port 80 を 一部解放できるのでこれを使用することにします。
詳細は パケットフィルター を参照してください。

パケットフィルタ利用設定

3つの範囲に分けて IP アドレス制限をします。
①   0.0.0.0 /2  0.0.0.0 ~ 63.255.255.255
② 64.0.0.0 /4  64.0.0.0 ~ 79.255.255.255
③ 211.0.0.0 /8 211.0.0.0 ~ 211.255.255.255
パケットフィルタ利用設定をするには さくらの会員 ID でログインしコントロールパネルに入ります。
「サーバー」を選択します。
「パケットフィルター設定」をクリックします。
「パケットフィルターを設定」をクリックします。
「パケットフィルター設定を追加する」をクリックします。
ポート番号 80
許可する送信元IPアドレス 一部許可
とし①の設定をします。
同様に「パケットフィルター設定を追加する」を順次クリックしながら②③の設定をします。
設定が終了したら、「設定を保存する」をクリックして完了です。

  • パケットフィルター設定
  • SSL 証明書更新の確認

    自動更新の確認を行ってみます。
    シリアルコンソ-ルを開き、
    yamada@********:~$ sudo certbot renew --dry-run
    として、実行します。
    Congratulations, all simulated renewals succeeded:
    が表示されれば、自動更新は有効になっています。

    これで、SSL 証明書の更新できないの説明は終わりです。
    引き続き、PHP を動作させていきます。


  • PHP を動作させる に進む
  • HTTPS によるアクセス最終準備 に戻る
  • Web サイトを SSL 化する に戻る
  • 仮想ホストの設定 に戻る
  • 新規ドメイン取得その2 に戻る
  • 新規ドメイン取得その1 に戻る
  • Web サービスを始める に戻る
  • さくら VPS に LAMP server をインスト-ル に戻る
  • さくら VPS Ubuntu 日本語環境 に戻る
  • さくら VPS を始める に戻る
  • 70VPS に戻る