WKWebView не может загрузить страницу с ERR_CERT_COMMON_NAME_INVALID - PullRequest
0 голосов
/ 22 октября 2018

Я использую WKWebView для загрузки веб-страницы в тестовой среде, где присутствует самозаверяющий сертификат.

WKWebView, кажется, не может загрузить эту веб-страницу, так как сертификат имеетследующая проблема:

ERR_CERT_COMMON_NAME_INVALID

В Safari, iOS и macOS, если я открою страницу, я получаю следующее сообщение:

enter image description here

Если я решу продолжить, я могу правильно загрузить страницу.Напротив, в WKWebView нет API, позволяющего обойти этот тип проверки.

Я пытался доверять всем сертификатам, используя следующие фрагменты, но ничего не происходит:

func webView(_ webView: WKWebView, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {

    if let serverTrust = challenge.protectionSpace.serverTrust {
        completionHandler(.useCredential, URLCredential(trust: serverTrust))
    } else {
        completionHandler(.cancelAuthenticationChallenge, nil)
    }
}

В моем Info.plist файле я установил NSAllowsArbitraryLoadsInWebContent на YES, а также NSAllowsArbitraryLoads для обеспечения обратной совместимости.

Есть идеи?

1 Ответ

0 голосов
/ 22 октября 2018

Я обнаружил проблему.

Ранее я использовал эту технику для добавления файлов cookie третьей части для загрузки веб-страницы.

Как настроить прием файлов cookie WKWebViewpolicy?

В iOS 12 это больше нельзя использовать из-за https://bugs.webkit.org/show_bug.cgi?id=188691.

Я оборачиваюсь вокруг, чтобы найти решение ...

...