2016-12-03 127 views
0

我剛拿到我的第一個證書,我試圖達到在Android的URL,但它給了我信任錨找不到錯誤證書路徑。我瀏覽了一段時間,直到找到一個解決方案,基本上是將證書添加到/ res/raw目錄中,稍後將其作爲Certificate對象添加到KeyStore中。'res'證書 - 是否安全?

一切工作正常。但我有點擔心。這是不是有點不安全?我聽說一些黑客技術可以讓黑客提取已安裝的應用程序的內容。這是有道理的,/ res/raw中的證書只包含一個公共密鑰,在這種情況下它可以很好,但恐怕不止這些。感謝您的回覆。

+0

「我只是得到我的第一個證書」 - 出於好奇,你在哪裏得到的證書?信任錨未找到的消息指出自簽名證書,新證書頒發機構,或已被否決由Android(和互聯網上或許其他各方)的權威。 「這難道不是不安全嗎?」 - AFAIK,你應該沒問題。如果您不小心將私鑰放在您的應用中,並且只要它是公鑰,那麼我認爲您的解決方案不會起作用,那麼應該沒有問題。 – CommonsWare

+0

我通過Github學生包從namecheap中獲得了它。我激活了它,在我的Web服務上設置了SSL並嘗試連接而沒有證書。它給了我那個錯誤。所以你說如果C in/res/raw是私人的,那麼連接就不起作用了? –

+0

「我通過Github學生包從namecheap中獲得了它」 - 這很奇怪。我通過他們獲得我的證書,但不通過那個學生包。我的證書由Thawte提供支持,Android對他們沒有任何問題。 Namecheap必須使用一些其他的根權限來製作學生包證書。 「所以你說如果C in/res/raw是私人的,那麼連接就不起作用了?」 - AFAIK,是的。 – CommonsWare

回答

0

爲了使用「保護」的連接,你必須創建密鑰對: 公共和私人。 所以,你必須隱藏私鑰(通常是服務器端)。 每次創建連接時,都必須將公鑰用於客戶端。 也就是說,你可以把公鑰到/res/raw,以便以後使用。 通常,密鑰對在客戶端和服務器之間創建受保護的連接。