【EC2】slack通知連携で curl エラーの対応(Lets Encript証明書の有効期限切れ)

AWS

こんにちはひこにきです

運用担当しているシステムでエラーなどを検知した際に php の curl で slack の webhook へ内容を通知しているのですが、一部の環境において通知されない事象が発生していました。

その時の対応した内容について説明したいと思います

発生した環境は EC2(AmazonLinux2)

Linux 4.14.209-160.339.amzn2.x86_64 #1 SMP Wed Dec 16 22:44:04 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

エラーの内容(php で出力されたログ)

cURL error 60: SSL certificate problem: certificate has expired (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)

対応方法

① openssl の 更新

確認したところ古かったので、まずは openssl のバージョンアップを実施 (OpenSSLの挙動もバージョンによって異なることがあるため)

コマンド(opensslの更新)
sudo yum install openssl
更新したパッケージのバージョン
openssl-1:1.0.2k-19.amzn2.0.4.x86_64 -> openssl-1:1.0.2k-24.amzn2.0.6.x86_64
openssl-libs-1:1.0.2k-19.amzn2.0.4.x86_64 -> openssl-libs-1:1.0.2k-24.amzn2.0.6.x86_64

② CA証明書の更新

続けて CA証明書(Certificate Authority) のバージョンアップを実施

コマンド(CA証明書 ca-certificates の更新)
sudo yum install ca-certificates
更新したパッケージのバージョン
ca-certificates-2019.2.32-76.amzn2.0.3.noarch -> ca-certificates-2021.2.50-72.amzn2.0.7.noarch

③ サービス(httpd, php-fpm)の再起動

利用しているサービス(apache,php-fpm)の再起動

コマンド(httpd, php-fpm の再起動)
sudo systemctl restart httpd.service
sudo systemctl restart php-fpm.service

CA証明書が古いときの対応について説明いたしました。

コメント

タイトルとURLをコピーしました