2017-10-04 9 views
0

현재 TCPListener를 사용하여 하나의 보안 서버를 구현하고 브라우저를 통해 Javascript 응용 프로그램 인 클라이언트에서 연결하려고합니다. SSLStream을 사용하여 통신을 시도하고 있으며 다음 방법을 사용하여 적절한 인증서가 제공됩니다.Internet Explorer에서 소켓 서버에 연결할 수 없습니다.

private static X509Certificate2 GetServerCert() 
{ 
    X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine); 
    store.Open(OpenFlags.ReadOnly); 
    X509Certificate2Collection cert = store.Certificates.Find(X509FindType.FindByThumbprint, "XXXXXX-THUMBPRINT_OF_CERTIFICATE_HERE-XXXXXXX", true); 
    return cert[0]; 
} 

는 지금은 사용하여이 서버에 연결할 때 "WSS를 : // IPADDRESS : 포트", 악수 및 데이터 통신은 클라이언트가 크롬 브라우저에서 실행중인 경우 잘 작동하지만 인터넷 익스플로러, 클라이언트에서 동일한 연결할 때 서버와 연결되지만 SSLStream을 사용하여 데이터가 수신되지 않습니다. 즉, SSLStream에서 0 바이트가 수신되고 서버에서 자동으로 연결이 끊어집니다.

wss 요청을 위해 TCPListener로 연결하기위한 브라우저 별 설정이 있는지 알려 주시기 바랍니다.

Internet Explorer 버전 : 11.0.9600.18738 (작동하지 않음)

크롬 버전 : 61.0.3163.100 (공식 빌드) (64 비트) (작업)

신뢰할 수있는 인증서 저장소에 추가됩니다 사용

인증서 . Chrome에서 작동하더라도 질문이 하나 더 있습니다. 클라이언트에서 한 번의 클릭으로 두 번의 요청이 항상 발생합니다. 첫 번째 히트에서는 빈 헤더를 얻은 다음 두 번째 히트에서 자동으로 전체 헤더를 얻습니다.

내가 시도한 바 : 동일한 클라이언트 응용 프로그램의 보안되지 않은 요청이 두 브라우저 (Internet Explorer 및 Chrome)의 TCPListener Server에서 제대로 작동하고 있습니다. "WS : // IPADDRESS : 포트

답변

0

저도 같은 문제가 없었다, 나는 변수에 엄지 손가락 인쇄를 저장하려고 다음의 코드를 아래와 같이 인증서를 가져 오기 위해 그것을 사용하고 그것은 나를 위해 일한

private static X509Certificate2 GetServerCert() 
{ 
    X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine); 
    store.Open(OpenFlags.ReadOnly); 
    string thumbPrint = "XXXXXX-THUMBPRINT_OF_CERTIFICATE_HERE-XXXXXXX"; 
    X509Certificate2Collection cert = store.Certificates.Find(X509FindType.FindByThumbprint, thumbPrint, true); 
    return cert[0]; 
} 
.