PHP + 컬에서 SSL을 제어하지 못하는 버그가있는 웹 서버와 이야기하려고합니다. PHP 컬에서 openssl 컨텍스트 옵션을 전달하는 방법
난하려면 openssl lib 디렉토리에 대해 직접 약간의 C-프로그램을 작성, 나는 SSL_CTX_set_options에 호출에 명시 적으로하려면 openssl 옵션 SSL_OP_NO_COMPRESSION 및 SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS을 사용하는 경우(), 나는 그것을 작동시킬 수 있다는 것을 확인하는을 통해. 이와 같이 :SSL_CTX_set_options(ctx, SSL_OP_NO_COMPRESSION | SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS)
... 그러나 그것은 고립 된 C 프로그램입니다.
어떻게 든 SSL + 연결을 설정할 때 PHP + 컬이 이러한 옵션을 설정할 수 있습니까? CURL은 훨씬 높은 수준에서 작동하는 것 같습니다. 여기
지금까지, 내 자신의 연구 결과입니다나는 약
curl_setopt
을 알고 있지만, 나는 그것의 목록에있는 같은 어떤 옵션을 볼 수 없습니다.나는 stream options이라고 불리는 것을 발견했습니다. 그러나 그들이 CURL과 함께 사용되는 방법에 대해 명확하지 않으며 다시 필요한 옵션을 찾을 수 없습니다.
PHP manual on openssl은 키와 인증서를 처리하는 기능 만있는 것처럼 보입니다.
그렇다면 HttpRequest setSslOptions이 있지만 다시 CURL 컨텍스트와 거의 일치하는 것으로 보입니다. 압축을 해제하는 옵션에 "user2076645"의 응답 후
UPDATE
#if OPENSSL_VERSION_NUMBER >= 0x0090605fL
ssl_ctx_options &= ~SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS;
#endif
:
특히, 나는이 코드 조각을 발견했다. 저도 커밋 메시지를 찾았습니다. SSL에 대한 공격에 대한 해결책이었습니다.
그래서, 나는 그것이 현재 :-(
우와, 감사를 비활성화 할 수있는 옵션이, PHP에서 할 수없는 것 같아요. 하지만 그 커밋은 약 14 일 밖에되지 않는 것 같습니다. 나는 그것을 얻으려면 최첨단 PHP 버전을 실행해야합니다 :-) – polesen