我们知道,https与http通过加密通过http隧道的内容不同,简单地说。如何处理https的iOS客户端
对于Web浏览器,由于用户从弹出的更改对话框接受许可,浏览器将从已安装的证书中获取密钥并执行此项工作。
对于iOS客户端开发,如何处理数字证书,获取公钥并通过公钥加密内容?谢谢,
(顺便说一句,AFnetworking是iOS开发者来处理HTTP的东西著名的开源项目,但好像它不处理HTTPS(纠正我,如果错了))
我们知道,https与http通过加密通过http隧道的内容不同,简单地说。如何处理https的iOS客户端
对于Web浏览器,由于用户从弹出的更改对话框接受许可,浏览器将从已安装的证书中获取密钥并执行此项工作。
对于iOS客户端开发,如何处理数字证书,获取公钥并通过公钥加密内容?谢谢,
(顺便说一句,AFnetworking是iOS开发者来处理HTTP的东西著名的开源项目,但好像它不处理HTTPS(纠正我,如果错了))
这是已经为你完成了。
AFnetworking,它构建的基础iOS网络库,NSURLConnection和几乎每个联网库(例如ASIHTTP等)都透明地为您处理https协议。
实际上,第一行on the front page of the AFNetworking github page是HTTPS例如:
NSURL *url = [NSURL URLWithString:@"https://alpha-api.app.net/stream/0/posts/stream/global"];
谢谢,好像已经完成了。有一个处理证书的宏_AFNETWORKING_PIN_SSL_CERTIFICATES_。还有一件事让我困惑,对于浏览器来说,会有一些弹出对话框告诉用户是否信任这个证书,并且访问该网站可能会有一些风险。对于iOS,如何处理这种情况? – Forrest 2013-04-28 02:45:03
只有当您的应用程序连接到您拥有CA证书的*知名*服务器时,您才会使用SSL证书锁定。您应该在应用程序中部署相应的证书 - 可能在捆绑中。因此,无需询问用户是否可以信任此证书 - 您(开发人员)已将其完成。顺便说一句,向用户询问它是否信任证书永远不是一个好主意 - 即使该网站的URL为“attacker.com”,她也会选择任何可用于连接任何内容的证书。 – CouchDeveloper 2013-04-28 15:25:53
有关宏AFNETWORKING_PIN_SSL_CERTIFICATES的一句话。你应该在论坛上提出这个问题:如果标志被定义 - 处理“主机名称验证”。 – CouchDeveloper 2013-04-28 15:28:41
NSURLConnection的和NSURLSession是由所有HTTP iOS的库所使用的底层类。这两个类为您执行HTTPS处理。没有什么可以让你担心的。
然后,您可以使用库作为AFNetworking或Hermod工作在这些基本的iOS类之上。
(1)HTTPS不加密“通过HTTP隧道的内容”。它是运行在以前安全通道上的HTTP - 与您可能想象的相反。 (2)你打算重新实施SSL/TLS吗?如果不是,那么使用HTTPS的某些类并且不要重新发明轮子。 – 2013-04-27 07:30:32