2017-08-24 96 views
0

我正在嘗試連接到https網址。如何在我的apk上添加SSL證書?

,我現在面臨的問題是,當我嘗試連接通過WebView我收到以下錯誤:

Failed to validate the certificate chain, error: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.

我尋覓了很多,但大多數關於此錯誤的答覆是忽略錯誤,並讓網址沒有問題。

看來,如果我在我的Android手機上添加證書,它的效果很好,但它確實有任何意義,我必須在每個要安裝應用程序的設備中添加SSL證書(因爲它們將是第三個第三方客戶)。

因此,我考慮將證書添加到apk中,以便應用程序的用戶不會有該證書的錯誤,並且他們將能夠連接到該URL的https

是否可以在apk上添加SSL證書?

在此先感謝!

+0

https://developer.android.com/training/articles/security-ssl.html –

+0

@ DonChakkappan我看了這個,但證書必須在手機或apk上?由於這一行:'InputStream caInput = new BufferedInputStream(new FileInputStream(「load-der.crt」));'我猜它是從本地設備檢索證書。 –

+0

將您的證書保存在資產文件夾中,並像context.getAssets()。open(「aliasname.cer」)打開它 –

回答

0

這將是非常容易設置&學習SSL,如果你去本地服務器。

1]設置用於SSL通信的服務器(例如:TomCat)(https://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html)。

2]寫一個簡單的網絡服務(http://www.radcortez.com/ssl-tls-rest-server-client-with-spring-and-tomee/)。

3用製備(密鑰工具的OpenSSL等)

4]它勸使用命令來創建密鑰庫中的工具中的任何一個,證書etc.But爲懶惰的人有一個自-signed證書基於GUI程序:)(http://keystore-explorer.org/downloads.html

5]現在,是時候腳SSL證書到Android Applications.Add您aliasname.cer

(可以通過S/W在點提到的[4]出口)

6]以編程方式檢查主機名(https://infinum.co/the-capsized-eight/securing-mobile-banking-on-android-with-ssl-certificate-pinning)。

7]創建自定義信任管理器,所以我們可以忽略Android系統的默認信任管理器(https://github.com/ikust/hello-pinnedcerts