我正在开发一个文件共享应用程序。它在两个 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/