HTTPS通信が失敗
ZabbixからURL監視のエラー通知を受けて発覚。タイミング的に自動化している3ヵ月毎のSSL証明書更新によるものと断定出来ました。
ブラウザから接続しみてると確かに以下のHTTPS通信エラーが表示され、キャッシュクリアなどしても解消しません。
このサイトへの接続はセキュリティで保護されていません
interior-urashiba.com では、サポートされていないプロトコルが使用されています。
エラーの原因
結論から書きますが、自動化していたCertbotを用いた証明書更新スクリプトでは、以前はRSA方式で証明書を取得していました。
ですが、最近の更新でECDSA方式がデフォルトで利用されるように仕様が変更されていた様です。この暗号化方式の違いが原因で、OCIロードバランサー(LB)の設定と新しい証明書が適合せず、HTTPS通信が失敗しました。
従来のRSAは非推奨に
RSA暗号は徐々に非推奨となっています。特に、鍵長が2048ビット未満のRSA鍵はセキュリティ上の理由から推奨されなくなっています。
・Microsoftは2048ビット未満のRSA証明書の使用を非推奨としている
・TLS1.3では、既にRSAは削除されている
ECDSAとRSAの比較
IPAの資格試験に頻出するので学習はしていましたが、RSAと比較しておさらいしておきます。
ECDSAは256ビットでRSAの2048ビットと同等の安全性を確保できることから、Webページのレスポンス改善目的でも採用されているそうです。
暗号の仕組み | 素因数分解の困難性に基づく | 楕円曲線の離散対数問題に基づく |
鍵のサイズ | 2048~4096ビット(推奨) | 256ビット程度でRSAと同等の安全性を提供 |
計算コスト | 高い(鍵サイズが大きいほど遅い) | 低い(同等の安全性でRSAより高速) |
安全性の基準 | 鍵サイズが大きいほど安全 | 鍵サイズが小さくても高い安全性を提供 |
主な用途 | 暗号化、デジタル署名 | デジタル署名、TLSハンドシェイク |
速度と効率 | 計算処理が重く、省リソース環境には不向き | 高速、省リソース環境で優れる |
使用例 | HTTPS証明書(TLS)、デジタル署名 | 新しいTLS証明書、ブロックチェーンの署名 |
適する環境 | 古いシステムや広く互換性が必要な場合 | 低リソース環境、最新システムやIoT |
解決方法
ECDSAの証明書に合わせてOCIロードバランサー側の暗号化スイートを変更します。
OCIロードバランサーでは、デフォルトで「oci-default-ssl-cipher-suite-v1」という互換性重視のものが選択されており、拡張オプションから変更の必要がありました。
今回はセキュリティを考慮し、「oci-modern-ssl-cipher-suite-v1」を選択しました。
教訓
パッケージマネージャーの一括アップデートコマンドは無暗に実行しない