gpt4 book ai didi

c# - TLS 连接 : override certificate validation

转载 作者:太空宇宙 更新时间:2023-11-03 13:44:36 24 4
gpt4 key购买 nike

尽管尝试反对所有安全措施,但我希望我的客户接受自签名 X.509 证书,就像我们服务器中的证书一样。我使用的是 WP8 SKD 以及用于 Windows Phone 的 Bouncy CaSTLe 的 C# 绑定(bind),称为 bouncywp7.1,因此它的大部分类/方法都可用。

这在 Android 中是通过创建我自己的证书信任管理器并使其对所有证书返回 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 上做同样的事情最轻松的方法是什么?

最佳答案

据我所知,您无法在 WP8 上欺骗 SSL。您要么使用 SSL,要么不使用。您不能覆盖证书验证(或者至少我从未听说过)。

如果您正在使用 SSL 并且您希望使用自定义证书,那么用户应该是安装它的人。例如通过向用户发送 cer 文件的电子邮件,让用户通过设置屏幕加入您的组织,或者甚至通过对 CER 文件使用 Luncher.LaunchFileAsync() 从您的应用程序中加入您的组织。

例如,如果您在项目中包含 FiddlerRoot.cer(使用 Build Action = Content),您可以要求用户使用以下代码片段安装它:

    private async void MainPage_Loaded(object sender, RoutedEventArgs e)
{
Launcher.LaunchFileAsync(await Package.Current.InstalledLocation.GetFileAsync("FiddlerRoot.cer"));
}

运行此代码片段会向用户显示以下对话:

Install Certification confirmation dialogue

关于c# - TLS 连接 : override certificate validation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13601799/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com