배경: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 번들을 안정적으로 쿼리하는 방법(핑을 통해 취약점을 추가하지 않고)을 모르겠습니다. 콤비네이션.
관련 버전:
# 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