gpt4 book ai didi

ibm-mobilefirst - Worklight 开发是否需要签名的 SSL 证书?

转载 作者:行者123 更新时间:2023-12-04 02:39:53 25 4
gpt4 key购买 nike

我正在 Worklight 版本 6.0 中进行演示,我需要使用 SSL 从 iOS 和 Android 到 Worklight Server。

有什么方法可以在 Worklight 服务器中使用自签名或测试证书吗?或者我是否需要从标准 CA 之一购买证书以进行测试/演示?

我已经看到有关如何在 Android 系统信任库中导入我的证书的引用资料,这看起来很有希望,但我没有看到任何适用于 iOS 的内容。有许多 native 代码解决方法(最终完全禁用 SSL 证书验证)以及关于哪种解决方案有效/无效的大量讨论(没有讨论我能找到的在 iOS 7 上仍然有效的内容)。

将证书导入Android系统truststore是否是最好的开发方式?

是否有适用于 iOS 的简单解决方案允许自签名或测试证书而不完全禁用证书检查?

最佳答案

好的。我没有找到通用答案,也没有找到接受特定证书的方法,但在 iOS 和 Android 上,可以禁用客户端证书验证以进行开发和测试。

在 Android 中,默认 list 已经配置为忽略证书验证。默认情况下,AndroidManifest.xml 中的 Application 元素有一个属性:

android:debuggable="true"

使用此设置,客户端不会验证服务器提供的 SSL 证书。所以在 Android 上,自签名证书默认情况下有效。要记住的重要一点是,当您从开发转移到生产时,将此属性设置为 false 很重要。当该属性设置为 false 时,客户端会验证服务器提供的证书,因此您需要为生产服务器提供一个真正的签名证书。 (有道理)

在 iOS 中,有几种建议的解决方案,我使用的是将以下内容添加到我的 .m 文件的末尾:

@implementation NSURLRequest(DataController)
+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host
{
return YES;
}
@end

据我所知,这是一个未发布的 API,覆盖它是错误的形式,但它有效,而且这用于开发,所以我将继续使用它。

我想我可以很聪明,在盲目地返回 YES 之前检查我的 Worklight Server 的主机名,但无论如何,添加上面的代码确实允许我的应用程序在 worklight 上使用带有自签名证书的 SSL服务器。

在将应用投入生产之前,需要删除这两种“解决方案”,因为它们会使应用容易受到中间人攻击。但是对于开发/早期测试/演示,它们允许 SSL 而无需获得真正的签名证书。

关于ibm-mobilefirst - Worklight 开发是否需要签名的 SSL 证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19773046/

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