2017-10-04 6 views
0

現在、私はTCPListenerを使用して1つのセキュアサーバーを実装しており、ブラウザからJavascriptアプリケーションであるクライアントから接続しようとしています。私はSSLStreamを使用して通信しようとしており、以下の方法で適切な証明書が提供されています。インターネットエクスプローラからソケットサーバーに接続できません

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]; 
} 

私はを使用してこのサーバに接続したときに今すぐクライアントがChromeブラウザから実行されている場合は、私はインターネットエクスプローラから同じ接続するとき、クライアントの「WSS:// IPアドレスポート」、握手やデータ通信がうまく機能サーバーと接続されますが、SSLStreamを使用してデータが受信されません。つまり、SSLStreamからゼロバイトが戻され、自動的にサーバーから切断されます。

wssリクエスト用にTCPListenerを使用して接続するためのブラウザ固有の設定があることをお知らせください。

Internet Explorerのバージョン:11.0.9600.18738(動作しない)

クロームバージョン:61.0.3163.100(公式ビルド)(64ビット)(ワーキング)

信頼された証明書ストアに追加されて使用されて

証明書。 Chromeから動作しても、もう1つの質問があります。クライアントからのワンクリックに対して2つのリクエストが常に発生します。最初のヒットでは、それは空白のヘッダーを取得し、自動的に2番目のヒットでフルヘッダーを取得します。

私が試したこと:同じクライアントアプリケーションからのセキュリティ保護されていないリクエストは、両方のブラウザ(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]; 
} 
関連する問題