Objective-C/코코아:나는 어떻게 받아들이 나쁜 서버 인증서?
-
08-06-2019 - |
문제
용 NSURLRequest, 려 나 웹 사이트에 액세스하는 인증서가 만료되었는지.보내면 요청은,나의 연결:didFailWithError 대리자 메서드를 호출하면 다음과 같은 정보:
-1203, NSURLErrorDomain, bad server certificate
내 검색만 설정을 하나의 솔루션:이 숨겨진 클래스 메소드에서 NSURLRequest:
[NSURLRequest setAllowsAnyHTTPSCertificate:YES forHost:myHost];
그러나 내가 사용하고 싶지 않은 개인 Api 에서 생산 응용 프로그램을 위한 명백한 이유.
어떤 제안에 무엇을 할까?나는 사용할 필요가 CFNetwork Api,그렇다면,두 개의 질문:
- 모든 샘플 코드가 사용할 수 있습을 시작할 수 있습니까?나는지는 모든 온라인.
- 내가 사용하는 경우 CFNetwork 에 대한 이들은 도랑 NSURL 니다.
편집:
iPhone OS3.0 도입은 지원되는 방법에 대한 이것을 하고 있다.자세한 내용은 여기: 를 사용하는 방법 있는 nsurlconnection 와 연결을 SSL 인증서 신뢰할 수 없는?
해결책 3
iPhone OS3.0 도입은 지원되는 방법 이 필요로하지 않는 낮은 수준 CFNetwork Api.자세한 내용은 여기:
다른 팁
지원되는 방법이 사용해야 합니 CFNetwork.당신이해야 할 첨부 kCFStreamPropertySSLSettings 스트림에 지정하는 kCFStreamSSLValidatesCertificatechain==kCFBooleanFalse.아래는 일부 빠른 코드는 그것은,마이너스 확인을 위해 유효한 결과를 추가 청소습니다.일단 당신이 이것을 사용할 수 있습 CFReadStreamRead()데이터를 얻을.
CFURLRef myURL = CFURLCreateWithString(kCFAllocatorDefault, CFSTR("http://www.apple.com"), NULL);
CFHTTPMessageRef myRequest = CFHTTPMessageCreateRequest(kCFAllocatorDefault, CFSTR("GET"), myURL, kCFHTTPVersion1_1);
CFReadStreamRef myStream = CFReadStreamCreateForHTTPRequest(kCFAllocatorDefault, myRequest);
CFMutableDictionaryRef myDict = CFDictionaryCreateMutable(kCFAllocatorDefault, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
CFDictionarySetValue(myDict, kCFStreamSSLValidatesCertificateChain, kCFBooleanFalse);
CFReadStreamSetProperty(myStream, kCFStreamPropertySSLSettings, myDict);
CFReadStreamOpen(myStream);
면 그것을 위해 내부 서버 테스트용으로,왜 그냥 가져오기 시험 서버 인증서 키체인하고 사용자 지정 신뢰 설정은?
나 같은 문제는 나를 개발 비누,클라이언트 개발 서버에서는"자체 개발한"인증을 취득하게 됩니다.할 수 있습니다 문제를 해결하기 위해도 사용하는 방법,이를 사용하지 않았습니다.NSURL 지만(가난하게 문서화되고 분명히 버려진)WS 방법,그리고에 대한 결정되는 시간을(내부적으로)는 단지 사용,비 SSL 연결합니다.
을 말하고는,그러나,질문이지 않은 경우,사용하고자 개인 API 에서 생산용,당신은에 액세스 할 수 있도록 사이트의 사기 certificate?
내가 견적 Jens Alfke:
는 단지 이론적인 보안 문제입니다.가
25%의 공 DNS 서버가 손상되었다,따라
최근 보고서 및할 수 있는 사용자를 피싱/악성/사이트도 광고
는 경우 그들은 도메인 이름을 입력합니다.유일한 것은 당신을 보호
에서는 SSL 인증서 확인합니다.
할 수 있는 자체 서명된 인증서를 추가하고 사용자 지정 인증 기관의 신뢰할 수 있는 CAs?나는 어떻게 작동되는 아이폰에,그러나 나는 가정에서 Mac OS X 을 추가 이러한 키체인.
당신은 또한에 관심이있을 수 있습니다 이 게시물 Re:를 처리하는 방법이 나쁜 증명서에 오류가 NSURLDownload
또 다른 옵션을 사용하는 것이 대체 연결은 라이브러리입니다.
나의 거대한 팬 AsyncSocket 과 지원을 위한 자체 서명된 인증서
http://code.google.com/p/cocoaasyncsocket/
을 보면,나는 그것은 방법은 더 강력한 다음 표준 NSURLRequests.