開發的項目需要政府網站,網站實用的是Https,而且網頁上提示首次使用請下載證書,想了好多方法,最后發現可以通過WKWebView來實現訪問。
Https
遇到的問題
- 首次使用需要下載證書
- 網站證書為自建證書
-
網站驗證碼圖片顯示必須下載證書
首次需要下載根證書
解決方法
-
首先在項目中設置Infoplist->ATP
ATP設置 從網站下載證書,將證書格式設置為
der
或cer
格式,在終端中修改方法:
.crt轉.der的方法 openssl x509 -in /Users/mac/Desktop/ca.crt -out /Users/mac/Desktop/ca.der -outform DER
.crt轉.cer方法: openssl x509 -in /Users/mac/Desktop/ca.crt -out /Users/mac/Desktop/ca.cer -outform DER
-
導入證書
直接把證書拉到項目中
將證書導入項目 WKWebView設置代理WKNavigationDelegate,在代理方法
webView:didReceiveAuthenticationChallenge:completionHandler
中設置證書信任
Objective-C
Swift
這樣,就可以正常的訪問這個網站了!!撒花~~
截圖
后記
之前采用UIWebView可以繞過證書驗證這一步,可是驗證碼圖片必須有證書才可以顯示。被這個折磨了一天,第二天用了WKWebView一下子就解決問題了,而且,WKWebView的性能還要優于UIWebView。還是需要不斷努力呀!!!