4

C# .Net アプリケーションから SslStream 経由でサーバーに接続しようとしています。

サーバーで認証しようとすると、クライアント側で、トランスポート ストリームから予期しない EOF または 0 バイトを受信したというエラーが表示されます。

サーバー側で表示されるエラーは次のとおりです:原因: javax.net.ssl.SSLHandshakeException: no cipher suites in common

Java では、次のコードが暗号を設定するために機能します。

SSLSocket sslSocket = (SSLSocket) socket;
String[] suites = sslSocket.getSupportedCipherSuites();
sslSocket.setEnabledCipherSuites(suites);

誰かがC#に相当するものを教えてくれますか?

前もって感謝します、

4

1 に答える 1

0

この問題は、異なる暗号スーツで呼び出すために発生します。通信を成功させるには、両方の端で共通のスーツを選択する必要があります。異なるスーツは異なる暗号テキストを生成するためです。

以下はデフォルトで提供されているスーツです[自分で作ることもできます]

C#-
SslAlgorithms.ALL |
SslAlgorithms.RSA_3DES_168_SHA |
SslAlgorithms.RSA_AES_128_SHA |
SslAlgorithms.RSA_AES_256_SHA |
SslAlgorithms.RSA_DES_40_SHA |
SslAlgorithms.RSA_DES_56_SHA |
SslAlgorithms.RSA_RC2_40_MD5 |
SslAlgorithms.RSA_RC4_128_MD5 |
SslAlgorithms.RSA_RC4_128_SHA |
SslAlgorithms.RSA_RC4_40_MD5 |
SslAlgorithms.SECURE_CIPHERS | SslAlgorithms.NULL_COMPRESSION

Java-
"SSL_RSA_WITH_RC4_128_MD5",
"SSL_RSA_WITH_RC4_128_SHA",
"TLS_RSA_WITH_AES_128_CBC_SHA",
"TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
"TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
"SSL_RSA_WITH_3DES_EDE_CBC_SHA",
"SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA",
"SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA",
"SSL_RSA_WITH_DES_CBC_SHA",
"SSL_DHE_RSA_WITH_DES_CBC_SHA",
"SSL_DHE_DSS_WITH_DES_CBC_SHA",
"SSL_RSA_EXPORT_WITH_RC4_40_MD5",
"SSL_RSA_EXPORT_WITH_DES40_CBC_SHA",
"SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA",
"SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA",
"SSL_RSA_WITH_NULL_MD5",
"SSL_RSA_WITH_NULL_SHA",
"SSL_DH_anon_WITH_RC4_128_MD5",
"TLS_DH_anon_WITH_AES_128_CBC_SHA",
"SSL_DH_anon_WITH_3DES_EDE_CBC_SHA",
"SSL_DH_anon_WITH_DES_CBC_SHA",
"SSL_DH_anon_EXPORT_WITH_RC4_40_MD5",
"SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA"
于 2016-07-12T19:02:53.453 に答える