我有以下简单的代码连接到SSL网页
NSMutableURLRequest *urlRequest=[NSMutableURLRequest requestWithURL:url];
[ NSURLConnection sendSynchronousRequest: urlRequest returningResponse: nil error: &error ];
Run Code Online (Sandbox Code Playgroud)
如果证书是自签名的,那么它会出错.Error Domain=NSURLErrorDomain Code=-1202 UserInfo=0xd29930 "untrusted server certificate".有没有办法将它设置为接受连接(就像在浏览器中你可以按接受)或绕过它的方法?
https objective-c ssl-certificate ios app-transport-security
嗨,我收到以下错误:
错误域= NSURLErrorDomain代码= -1202 \"此服务器的证书无效.您可能正在连接到假装为"server-prod.name-cloud.com"的服务器,这可能会使您的机密信息面临风险. \"UserInfo = {NSErrorFailingURLStringKey = https://server-prod.name-cloud.com/v3/project/session/926B9E6BE31B /,NSLocalizedRecoverySuggestion =您是否还要连接到服务器?,_ kCFStreamErrorDomainKey = 3,NSErrorFailingURLKey = https ://server-prod.name-cloud.com/v3/project/session/926B9E6BE31B /,_ kCFStreamErrorCodeKey = -9843,NSLocalizedDescription =此服务器的证书无效.您可能正在连接到假装为"server-prod.name-cloud.com"的服务器,这可能会使您的机密信息面临风险.}
我阅读了所有相关文档,我们应用了"常见故障"部分中的所有要求.
更多细节:
在我使用的应用程序中:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
Run Code Online (Sandbox Code Playgroud)
注意 - 在生产中我总是使用HTTP,我留下NSAllowsArbitraryLoads,因为一些离岸测试人员可以将路由切换到HTTP进行调试.
你们是否有任何线索如何改变内容Security.framework/TrustStore.sqlite3.似乎iPhone使用它来存储可信的CA证书.我真的希望我的iPod touch能够信任我的自定义证书.除此之外,你是否有人知道编辑sqlite3数据库文件的应用程序(win32)(除了sqliteman,这个总是为我崩溃).
ios ×2
certificate ×1
https ×1
iphone ×1
nsurlsession ×1
objective-c ×1
ssl ×1
tls1.2 ×1
x509 ×1