2014-02-19 5 views
0

나는 파일 공유 응용 프로그램을 만들고 있습니다. 그것은 두 개의 IOS 장치 사이의 TCP 연결로 작동하고 그들 사이의 보안 연결이 필요합니다. 연결에 GCDAsyncSocket 라이브러리를 사용하고 있습니다. 이 라이브러리를 사용하여 SSL 연결을 허용하는 다른 응용 프로그램을 연결하기 전에 클라이언트 측에서 아무런 문제가 없습니다. 여기에 질문이 있습니다. 유효한 SSL 인증서가있는 SSL 연결 만 허용하는 소켓을 호스팅하려면 어떻게해야합니까? 감사.iOS 기기와의 보안 연결 호스팅

답변

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