2017-10-04 104 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:// IP地址:端口」,握手和數據通信效果很好,如果客戶從Chrome瀏覽器中運行,但是當我連接相同的從Internet Explorer,客戶端與服務器連接,但沒有數據收到使用SSLStream,即從SSLStream零字節,並再次自動從服務器斷開連接。

請讓我知道是否有任何瀏覽器特定的設置用於連接TCPListener的wss請求。

Internet Explorer版本:11.0.9600.18738(不工作)

Google Chrome版本61.0.3163.100(正式版本)(64位)(工作)

被用來添加到可信證書存儲

證書。 即使它在Chrome上運行,還有一個問題,它總是會從客戶端獲得一次點擊的兩個請求。在第一次擊中時,它會得到空白標題,然後在第二次擊中時自動獲得完整標題。

我曾嘗試過:來自同一客戶端應用程序的非安全請求可以通過兩個瀏覽器(Internet Explorer和Chrome)與TCPListener Server正常工作。 「WS:// IP地址:端口

回答

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]; 
} 
相關問題