iPhoneでモノタッチで実行されているアプリケーションがあります。現在、BasicHttpBindingを使用してWCFサービスに接続しています。現在、BasicHttpSecurityMode.Transport(これは事実上HTTPSです)でBasicHttpBindingを再度使用して、接続を安全にするプロセスにあります。
自己署名証明書を作成し、これをサーバーに追加しました。ブラウザ(iPhoneとPCの両方から)を介してサーバーアドレスにアクセスする場合、問題なく接続できます。ただし、MonoTouchアプリケーションに接続すると、次の例外が発生します。
System.Net.WebException has been thrown
Error writing request: BeginWrite failure
Wiresharkを使用して接続を分析し、サーバーが接続を閉じていることを確認しました(サーバーはClientHelloを受信した後にtcpリセットを送信します)。IISのエラーログで、次のメッセージが見つかりました。
An TLS 1.0 connection request was received from a remote client application, but none of the cipher suites supported by the client application are supported by the server. The SSL connection request has failed.
サーバーでサポートされている暗号を調べると、次のリストが表示されます。
TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA
TLS_RSA_WITH_RC4_128_SHA
TLS_RSA_WITH_3DES_EDE_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P384
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P256
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P384
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P384
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P256
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P384
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P384
TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
TLS_DHE_DSS_WITH_AES_128_CBC_SHA
TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
TLS_DHE_DSS_WITH_AES_256_CBC_SHA
TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
TLS_RSA_WITH_RC4_128_MD5
SSL_CK_RC4_128_WITH_MD5
SSL_CK_DES_192_EDE3_CBC_WITH_MD5
TLS_RSA_WITH_NULL_SHA256
TLS_RSA_WITH_NULL_SHA
Monotouchが少なくともTLS_RSA_WITH_AES_128_CBC_SHAをサポートしていることはわかっていますが(Wiresharkによる)
誰かがこの問題または回避策を修正するための解決策を持っていますか?たぶん、IISまたはmakecertでいくつかの特別なオプションを使用する必要がありますか?
前もって感謝します!