こんにちはひこにきです
運用担当しているシステムでエラーなどを検知した際に 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証明書が古いときの対応について説明いたしました。
コメント