首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gSOAP和OpenSSL on iPhone

gSOAP和OpenSSL on iPhone
EN

Stack Overflow用户
提问于 2010-12-10 15:34:12
回答 2查看 1.1K关注 0票数 1

这是我关于堆栈溢出的第一篇文章。希望我没有打扰到任何人..。:)

我已经用gSOAP连接到我的iPhone应用程序的http-webservice有一段时间了。现在,我正在尝试使用https-webservice。我在项目中包含了openssl,并添加了编译平面-DWITH_OPENSSL。Build&Run正在工作,但不幸的是,openssl不允许我验证webservers证书。

打开调试模式,我发现webserver证书存在问题:

SSL验证错误或在深度为1的证书上发出警告:无法获得本地颁发证书颁发者/C=US /O=VeriSign,Inc./OU=第3类公共主证书颁发机构证书主体/O=VeriSign Trust Network/OU=VeriSign,Inc./OU=Class 3/OU=www.verssign.com/CPS Incorp.by参考资料。法律责任有限公司(C)97 VeriSign

使用SSL购物者SSL检查器进行检查,结果如下:

所有主要的web浏览器都应该信任证书(所有正确的中间证书都已安装)。

关于如何解决这个问题,有什么想法吗?

BR

马丁

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-16 12:58:54

嗯,有时候RTFM真的很有用:)

第19.20节(使用HTTPS/SSL的安全SOAP客户端)如下:“若要禁用用于测试目的的服务器身份验证,请使用以下命令:”

代码语言:javascript
复制
if (soap_ssl_client_context(&soap,
   SOAP_SSL_NO_AUTHENTICATION,
   NULL,
   NULL,
   NULL,
   NULL,
   NULL
   ))
{
   soap_print_fault(&soap, stderr);
   exit(1);
}

不幸的是,-DSOAP_DEBUG选项仍然读取"SSL验证错误或警告与证书的深度1:无法获得本地颁发者证书“。不管怎样,它现在起作用了。

票数 0
EN

Stack Overflow用户

发布于 2016-06-21 01:12:47

禁用Auth不是正确的解决方案。我怀疑您没有设置openssl用于信任ca的CA证书文件路径。

soap_ssl_client_context(&soapObject,SOAP_SSL_DEFAULT,NULL,NULL,cacerts.pem,NULL,NULL))

您可以从mozilla获得cacerts.pem。如果您的应用程序只允许连接到一个网站,那么您应该保留网站证书颁发的CA的散列,并从pem文件中删除所有不必要的ca。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4410424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档