인사말 SO brain trust.명시 적으로 설정하지 않은 경우 Indy TIdSSLIOHandlerSocketOpenSSL에 사용되는 기본 프로토콜은 무엇입니까?
Indy 10 TIdSSLIOHanderSocketOpenSSL에 명시 적으로 프로토콜이 설정되지 않은 경우 사용되는 기본 프로토콜은 무엇입니까?
오늘 프로토콜을 명시 적으로 설정하지 않은 일부 코드에서 실행되었습니다.
HTTPReq := TIdHTTP.Create(nil);
IdSSLIOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
if Assigned(HTTPReq) then begin
HTTPReq.ReadTimeout := 180000;//set read timeout to 3 minutes
HTTPReq.Request.ContentType := 'text/xml;charset=UTF-8';
HTTPReq.Request.Accept := 'text/xml';
HTTPReq.Request.AcceptEncoding := 'gzip,deflate';
HTTPReq.HTTPOptions := [];
HTTPReq.IOHandler := IdSSLIOHandler;
end;
참고 사용되는 프로토콜에 대한 명시적인 설정이 없습니다. 아무것도 설정하지 않은 경우 기본적으로 사용되는 것은 무엇입니까? 내 관심사는 TLS 1.0이나 급하게 사용되지 않는 것을 사용하고 있다는 것입니다.
델파이 10.2 도쿄 업데이트 1 및 인디 10.6.2.5366 최신 1.0.2n 열기 SLL DLL을
건배를 사용!
TJ
레미! 빠른주의 - TLS 1.1과 TLS 1.2가 둘 다 버전으로 추가되면 TLS 1.2가 작동하지 않으면 구성 요소는 먼저 TLS 1.2를 협상하고 TLS 1.1을 협상하려고 시도 할 것인가? –
번호 OpenSSL은 TLS 1.0이 지원되는 가장 낮은 버전이고 TLS 1.2가 지원되는 가장 높은 버전임을 지정하는 단일 핸드 셰이크를 보냅니다. 상대방은 핸드 셰이 킹을 계속할 특정 버전을 결정합니다. 해당 협상에 실패하면 연결이 끊어지고 오류가 발생합니다. Indy는 다른 버전을 자동으로 다시 시도하지 않습니다 (즉, Indy의 코드에서 할 일 목록 항목). 직접 코드에서 직접 처리해야합니다. –
[sslvTLSv1_1, sslvTLSv1_2]의 Method ofsslvSSLv23 및 SSLVersions를 설정하면 TLS 1.1 및 TLS 1.2를 가장 높게 지정하고 서버는 사용할 옵션을 선택할 수 있습니까? (저는이 시나리오에서 클라이언트입니다) TLS 1.1 또는 TLS 1.2가 아닌 경우 연결을 설정하고 싶지 않습니다. –