私は奇妙な問題を抱えています。TCP/SSL 経由で Apple サーバーに接続しようとしています。プッシュ通知用に Apple が提供するクライアント証明書を使用しています。サーバー (Win2k3) のローカルの信頼されたルート証明書とローカルの個人証明書フォルダーの両方に証明書をインストールしました。
これで、その接続を処理するクラス ライブラリができました。サーバーから実行されているコンソール アプリケーションからこのクラス ライブラリを呼び出すと、まったく問題なく動作しますが、asp.net ページまたは asmx Web サービスからそのクラス ライブラリを呼び出すと、次の例外。
SSPI の呼び出しに失敗しました。内部例外を参照してください。受信したメッセージは予期しないものであるか、形式が正しくありません。
これは私のコードです:
X509Certificate cert = new X509Certificate(certificateLocation, certificatePassword);
X509CertificateCollection certCollection = new X509CertificateCollection(new X509Certificate[1] { cert });
// OPEN the new SSL Stream
SslStream ssl = new SslStream(client.GetStream(), false, new RemoteCertificateValidationCallback(ValidateServerCertificate), null);
ssl.AuthenticateAsClient(ipAddress, certCollection, SslProtocols.Default, false);
ssl.AuthenticateAsClient
エラーがスローされる場所です。
これは私を夢中にさせています。コンソール アプリケーションが正常に接続できる場合は、認証に失敗している asp.net ネットワーク層セキュリティに何らかの問題があるはずです...確かではありません。おそらく、web.config に何かまたは何らかのセキュリティ ポリシーを追加する必要があります。また、コンソールとウェブサイトの両方を使用して、ローカル開発マシンに正常に接続できることを指摘するだけです。
誰にもアイデアはありますか?