如何在Root Android手機安裝StartSSL/StartCom憑證

版主: stnet253

回覆文章
tony
文章: 585
註冊時間: 2012-02-26, 07:04
聯繫:

如何在Root Android手機安裝StartSSL/StartCom憑證

未閱讀文章 tony »

我自己在CubieTruck架好了郵件伺服器,但總覺得常年在外使用免費的網路,帳號密碼以明碼傳送可能不安全,所以在CubieTruck加設了 POP3S(995)/SMTP TTLS(465)。我用的是 StartSSL 免費的憑證,在自己的電腦上 Outlook沒有問題,可以正常透過加密方式來收發信。但是Android手機就碰到問題了,一直說Java不認的StartSSL憑證,這也難怪,因為 StartSSL 是免費的,所以是可能有問題的。

所以我在網路上找了個方法,把StartSSL憑證手動給安裝進去(一般方法要設定解屏圖形密碼,但不需要Root),我的手機是Root的,所以可以採用這個方法,因為我討厭每次使用手機要滑來滑去!

首先我們必須先下載 StartSSL Class 1 的官方憑證,sub.class1.server.ca.pem

下載位址

然後把這個 sub.class1.server.ca.pem 檔案上傳拷貝到 CubieTruck 上去更改 Hash 檔名,然後在CubieTruck 終端機裡面輸入

# openssl x509 -in sub.class1.server.ca.pem -subject_hash_old -noout

之後 openssl 會告訴你 sub.class1.server.ca.pem 的 hash 檔名是 ea59305e,然後在把檔案更名為

# mv sub.class1.server.ca.pem ea59305e.0

然後在把 ea59305e.0 檔案拷貝到自己電腦裡面,好讓待會 adb 連線時可以上傳這個檔案,此外我們必須知道 Android 的憑證都放在 /etc/security/cacerts 目錄底下(我的手機是Android 4.0以上,2.2/2.3我並不確定),但是這個目錄是唯讀的,這才所以需要 root 手機來重新掛載檔案系統。所以你先在電腦裡面使用 adb 上傳檔案(ea59305e.0)並且連結到已經 root 手機上。

C:\adb> adb push ea59305e.0 /sdcard/temp -->假定 /sdcard/temp 是暫存空間
C:\adb> adb shell -> 用 adb 連結到 android 手機內

然後在把剛剛在 CubieTruck 處理過的檔案 ea59305e.0 拷貝到手機憑證目錄裡面 /etc/security/cacerts

# su
# mount -o remount,rw /system
# cd /etc/security/cacerts
# cp /sdcard/temp/ea59305e.0 /etc/security/cacerts
# chown root:root /etc/security/cacerts/ea59305e.0
# chmod 644 /etc/security/cacerts/ea59305e.0
# sync
# mount -o remount,ro /system

再用 Android 手機內的設定->安全性->信任憑證,是不是多了一個 StartCom Class 1 Primary Intermediate Server CA的憑證了呢?

後記:現成的憑證,省的自己去下載轉檔 載點,我試過4.1/4.2/4.3都可以行得通,測試條件是用AquaMail收POP3S和SMTPS over TLS,沒有再出現錯誤訊息,且收發信正常。

https://www.dennysu.com/wordpress/2014/ ... %E8%AD%89/
回覆文章

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客