내 ActiveX 구성 요소는 WinInet.dll을 사용하고 SSL 인증 기관을 사용하여 서버와의 SSL 연결을 설정합니다.WinInet + SSL : 약식 SSL 핸드 셰이크를 만들 수 없습니다.
IE 프로세스에서 호스트되지 않은 경우 항상 서버와 완전한 SSL 핸드 셰이크를 수행합니다. 그리고 Client Hello에서 SessionID 헤더를 재사용하여 단축 SSL 핸드 셰이크를 만들 수있는 방법을 찾지 못했습니다.
그렇지 않으면 내 ActiveX가 IE 프로세스에서 호스팅되는 경우 SessionID 헤더를 다시 사용하면 자동으로 작동합니다.
IE에서 내 연결에 추가 설정이 적용되는 것처럼 보입니다. 아무도 이러한 추가 설정을 알고 있습니까? 아무도 내가이 문제와 어떻게 싸울 수있는 몇 가지 팁을 제안 할 수 있습니까?
P. Delphi 프로젝트이므로 WCF를 사용할 수없고 OpenSSL로 이동할 수 없습니다.
은 내가 여기에 몇 가지 설명을 제공해야한다고 생각 :
내 액티브 X는 확실히 (IE의 프로세스 컨텍스트와 비 IE의 프로세스 컨텍스트에서) 두 경우에는 WinInet.dll을 사용합니다.
WinInet.dll은 SSL/TLS 핸드 셰이크를 수행합니다. WinInet 수준에서는 SessionID 헤더에 액세스 할 수 없지만 IE에는 있습니다.
IE는 ActiveX가 호스팅되는 IE 프로세스 인 경우 이전 SessionID를 사용하도록 WinInet을 설정하는 방법을 알고 있습니다. WinInet은 약식 SSL/TLS 핸드 셰이크를 수행합니다.
IE가 아닌 프로세스에서 WinInet.dll을 사용하면 WinInet은 클라이언트 Hello 용 SessionID를 사용하지 않습니다. WinInet은 완전한 SSL/TLS 핸드 셰이크를 수행합니다.
여기서 SSL/TLS 핸드 셰이크에 대한 두 가지 시나리오가 있습니다. 즉, IE가 아닌 프로세스에 대해서는 전체이고 IE 프로세스에 대해서는 약식입니다. 이 시나리오에 대한 자세한 내용은 MSDN 블로그 http://blogs.msdn.com/b/huizhu/archive/2009/12/17/ssl-_2f00_tls-full-handshake-vs.-abbreviated-handshake.aspx
희망이 있습니다.
ActiveX .ocx 컨트롤이 기본 델파이 프로그램으로 작성 되었습니까? 어쩌면 특정 동작이 예상되는 경우 사용하고있는 API와 그 API에 사용중인 매개 변수를 지정하여 누락 된 부분을 발견 할 수 있는지 알아볼 수 있습니다. 내 최고의 추측은 위의 포인트 # 5 링크가 레지스트리를 통해 설정되는 것을 보여주는 것과 동일한 옵션을 설정하는 wininet API를 찾아야한다는 것입니다. –