2013-02-15 2 views
0

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

, 나는 PHP의 소스를 복제하고 자신의 주위를 살펴했다 이눔 아. 명시 적으로 내가 필요로하는 옵션을 비활성화

#if OPENSSL_VERSION_NUMBER >= 0x0090605fL 
    ssl_ctx_options &= ~SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS; 
#endif 

:

특히, 나는이 코드 조각을 발견했다. 저도 커밋 메시지를 찾았습니다. SSL에 대한 공격에 대한 해결책이었습니다.

그래서, 나는 그것이 현재 :-(

답변

관련 문제