托管与iOS设备的安全连接

时间:2014-02-19 09:47:22

标签: ios iphone sockets ssl gcdasyncsocket

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

1 个答案:

答案 0 :(得分:0)

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

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};