iOS - 简单的SSL套接字连接

时间:2013-12-08 20:52:55

标签: ios iphone sockets ssl

在iOS中创建SSL套接字连接的正确方法是什么?

我用Java实现了一个SSL服务器:

  • 使用商店密码创建SSL证书
  • 通过设置系统属性“javax.net.ssl.keyStore”和“javax.net.ssl.keyStorePassword”来加载它
  • 使用SSLServerSocket工厂创建SSLServerSocket

现在我想创建一个客户端应用程序,它在一个线程中打开一个套接字连接并通过它进行通信。创建此类连接并与我的服务器证书进行通信的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

您可以使用NSInputStreamNSOutputStream根据this question的答案使用TLS进行连接。

修改: 我建议不要在该答案中使用SSL设置:

NSDictionary *settings = @{ 
    (__bridge NSString *)kCFStreamPropertySocketSecurityLevel:(__bridge NSString *)kCFStreamSocketSecurityLevelNegotiatedSSL 
};

这使用以下默认值:

kCFStreamSSLAllowsExpiredCertificates:  NO
kCFStreamSSLAllowsAnyRoot: NO
kCFStreamSSLValidatesCertificateChain: YES

如果要将安全级别设置为使用特定版本的SSL或TLS,请查看CFSocketStream.h中的值。

答案 1 :(得分:-1)

如果您使客户端应用程序不是服务器应用程序,则无需创建证书。 要在iOS中执行此操作,有多种方法,最简单的方法是使用AFNetworking库。 只需将url(https)放在其中一个方法中,就可以了。 我多次使用它。只花5分钟阅读文档。