은 OpenSSL :: SSL ::위한 verify_peer =에는 OpenSSL : SSL :: VERIFY_NONE
그러나 나는 그와 운이 없었다.
이는 의미가없는 것처럼 보입니다. VERIFY_NONE
을 VERIFY_PEER
에게 할당하는 것으로 보입니다. 그것들은 변수가 아닌 OpenSSL 상수입니다. 그래서 당신은 그렇게 할 수 없습니다.
이는 OpenSSL 컨텍스트 옵션입니다. Ruby docs에 따르면, 당신은 verify_mode
로를 설정해야합니다
verify_mode
세션 검증 모드.
유효한 모드는 VERIFY_NONE
, VERIFY_PEER
, VERIFY_CLIENT_ONCE
, VERIFY_FAIL_IF_NO_PEER_CERT
그리고 그것은 당신이 보낼 수있는 프로그램 수 변화 될 수있는 응답 중 하나에서 언급
은 OpenSSL : SSL에 정의 된 다른 고객 안녕하세요. 루비 스크립트에서이 작업을 수행 할 수 있습니까?
ClientHello
에는 두 가지 유형이 있습니다. 하나는 이전 SSL ClientHello
이고 다른 하나는 TLS ClientHello
입니다. 원래 SSL 사양에는 버전 정보가 없었기 때문에 어느 버전이 전송되었는지 알기가 어려웠습니다. 내가 이해하는 한, 어떤 바이트가 사용되었는지 알려주기 위해 검사된다. 일부 클라이언트와 서버는 여전히 잘 처리하지 못합니다.
내가 아는 한 Ruby에는 OpenSSL 메소드에 대한 몇 가지 옵션이 있습니다. Ruby docs에서 :
new => ctx
new(:TLSv1) => ctx
new("SSLv23_client") => ctx
당신은 OpenSSL의 SSLv23_method
에 해당하는 ClientHello
을 보내려고합니다. 이것은 대부분의 호환성을 제공합니다. 그러나 SSLv2 프로토콜 이상을 사용할 수 있습니다 (SSLv2, SSLv3, TLS1.0, TLS1.1 및 TLS1.2)
SSLv2 및 SSLv3과 같은 손상된 약한 프로토콜을 제거하려면 다음을 설정해야합니다. 일부 컨텍스트 옵션.불행히도 Ruby는 OpenSSL::SSL::SSL_OP_NO_SSLv2
및 기타 컨텍스트 옵션을 제공하지 않는 것으로 나타났습니다 (또는 찾을 수 없습니다). How to set TLS context options in Ruby (like OpenSSL::SSL::SSL_OP_NO_SSLv2)을 참조하십시오.
그래서 나는 지금 당신이 붙어 있다고 생각합니다.
출처
2014-03-25 21:11:39
jww
"클라이언트 안녕하세요 설정"이란 정확히 무엇을 의미합니까? – jww