すべてのセキュリティ対策を試みていますが、サーバーにあるような自己署名 X.509 証明書をクライアントに受け入れてもらいたいと思っています。私は WP8 SKD に加えて、bouncywp7.1 と呼ばれる Windows Phone 用の Bouncy Castle の C# バインディングを使用しているため、そのほとんどのクラス/メソッドが利用可能です。
Android でこれを行う方法は、独自の Certificate Trust Manager を作成し、すべての証明書に対して true を返すようにすることでした。
public static void allowAllSSL()
{
HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
@Override
public boolean verify(final String hostname, final SSLSession session) {
return true;
}
});
SSLContext context = null;
try {
context = SSLContext.getInstance("TLS");
context.init(null, sTrustManagers, new SecureRandom());
} catch (final NoSuchAlgorithmException catchException) {
LoggerFactory.consoleLogger().printStackTrace(catchException);
} catch (final KeyManagementException catchException) {
LoggerFactory.consoleLogger().printStackTrace(catchException);
}
mFakeFactory = context.getSocketFactory();
HttpsURLConnection.setDefaultSSLSocketFactory(mFakeFactory);
}
Windows Phone 8 で同じことを行う最も簡単な方法は何ですか?