40

iOS 8 の WKWebView で自己署名証明書を使用して HTTPS URL を読み込もうとしていますが、失敗し続けます。UIWebView で使用される回避策 (NSUrlRequest から setallowAnyHTTPSCertificate を使用) は機能しないようです。誰かが回避策を知っていますか?

本番環境ではなく、開発段階で自己署名証明書サイトにアクセスする必要があるだけなので、AppStore に有効なソリューションは必要ありませんが、サーバー インスタンスの開発とテストでは実際に問題になります。

前もって感謝します。

4

7 に答える 7

8

同じエラーが発生し、上記の最も投票された回答を使用して解決しようとしました。次のコードを使用してNSURLCredentialオブジェクトを作成しましたが、失敗しました。

NSURLCredential * credential = [[NSURLCredential alloc] initWithTrust:[challenge protectionSpace].serverTrust];

その後、 Apple Developer Forumsで解決策を見つけました。これは私を助けました:

- (void)webView:(WKWebView *)webView didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential *credential))completionHandler {
  NSLog(@"Allow all");
  SecTrustRef serverTrust = challenge.protectionSpace.serverTrust;
  CFDataRef exceptions = SecTrustCopyExceptions (serverTrust);
  SecTrustSetExceptions (serverTrust, exceptions);
  CFRelease (exceptions);
  completionHandler (NSURLSessionAuthChallengeUseCredential, [NSURLCredential credentialForTrust:serverTrust]);
  }
于 2017-06-02T07:54:58.133 に答える