背景:PHPでは、CURLOPT_SSL_VERIFYPEER
多数の要求を開いて実行すると、CAバンドルのコピーがメモリに残ります(curl_close
これは役に立ちません)。回避策は最小CAバンドルを使用し、ここから関連するCA証明書を抽出/etc/pki/tls/certs/ca-bundle.crt
することによってCURLOPT_CAINFO
。
質問:欠けている部分は、それを公開プロセスに自動的に統合してそれを公開する方法です。
- ホスト証明書が信頼できることを確認し、
- ホスト証明書の検証に使用されるCA証明書を抽出します。別のファイルとして。
これは、ホストが証明書プロバイダを変更した場合(まれに、または可能性がない)バンドルを簡単に変更できるようにするために必要です。
最後に私はどうすればいいですか?信頼できますか? openssl s_client -connect example.com:443 -showcerts
シリアル番号または検証証明書の完全な内容は表示されません。 C / O / CN属性は明らかにCAバンドル内で一意である必要がありますが、検証に依存すると脆弱に見え、grep
C / O / CNに対してCAバンドルを確実に照会する方法(pingを介して脆弱性を追加せず)がわかりません。コンビネーション。
関連バージョン:
# php --version | head -n1
PHP 5.4.16 (cli) (built: Nov 6 2016 00:29:02)
# rpm -qi libcurl | grep ^Version
Version : 7.29.0
# openssl version
OpenSSL 1.0.1e-fips 11 Feb 2013
# uname --kernel-name --kernel-release --kernel-version --processor
Linux 3.10.0-514.16.1.el7.x86_64 #1 SMP Wed Apr 12 15:04:24 UTC 2017 x86_64