ios - 托管与 iOS 设备的安全连接

标签 ios iphone sockets ssl gcdasyncsocket

我正在开发一个文件共享应用程序。它在两个 iOS 设备之间使用 TCP 连接,我需要它们之间的安全连接。我正在使用 GCDAsyncSocket 库进行连接。我之前使用这个库来连接其他接受 SSL 连接的应用程序,所以我对客户端没有问题。这是问题;如何托管只接受具有有效 SSL 证书的 SSL 连接的套接字?谢谢。

最佳答案

我终于解决了我的问题。在 didAcceptNewSocket 委托(delegate)方法中,我使用这些设置加载我的证书。

NSDictionary *settings = @{(NSString *)kCFStreamPropertyShouldCloseNativeSocket:    [NSNumber numberWithBool:YES],
                           (NSString *)kCFStreamSSLValidatesCertificateChain:       [NSNumber numberWithBool:YES],
                           (NSString *)kCFStreamSSLAllowsExpiredCertificates:       [NSNumber numberWithBool:NO],
                           (NSString *)kCFStreamSSLAllowsExpiredRoots:              [NSNumber numberWithBool:NO],
                           (NSString *)kCFStreamSSLAllowsAnyRoot:                   [NSNumber numberWithBool:YES],
                           (NSString *)kCFStreamSSLCertificates:                    certificates,
                           (NSString *)kCFStreamSSLIsServer:                        [NSNumber numberWithBool:YES],
                           (NSString *)kCFStreamSSLLevel:                           (NSString *)kCFStreamSocketSecurityLevelTLSv1}; 

关于ios - 托管与 iOS 设备的安全连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21876659/

相关文章:

ios - 在动态框架内生成框架文件夹

ios - Firebase 的 snapshot.value 转换为 Bool 突然返回 nil

ios - 在 iOS7 中 "main" View 下的元素存储(弱或强)

javascript - nodejs、socket、https - Socket 不建立连接,仅断开连接

javascript - 重用 TCP 客户端和 TCP 服务器之间打开的一个 TCP 连接

ios - 如何将 NSNotification.Name 重新定义为枚举?

ios 使用自动布局在另一个 View 中放置 3 个 View

iphone - 核心图像过滤器应用

iOS UIImageView 约束在表格单元格中不起作用

c - 如何从 C 中的套接字读取整数