如何将CA证书导入Android手机?


59

我想使用Nexus One连接到大学的无线网络。当我转到“无线设置”中的“添加Wi-Fi网络”时,我填写网络SSID并选择802.1x Enterprise作为安全性并填写所有内容。

问题是我们大学的无线网络使用Thawte Premium Server CA证书进行认证。

当我单击CA证书的下拉列表时,列表中没有任何内容(仅N / A)

现在,我拥有证书(Thawte Premium Server CA.pem)并将其移到我的SD卡中,但是它看起来好像Android不会自动检测到它。

我应该将证书放在哪里,以便Android无线管理器识别它。换句话说,我该如何导入CA证书,以便Android识别出它在电话上并显示在CA证书下拉列表中。

谢谢你的帮助,

托梅克

PS我的手机没有植根

编辑:进行一些研究后,您似乎可以通过转到手机的设置>位置和安全性>从SD卡安装来安装证书

不幸的是,看起来好像唯一可接受的文件扩展名是.p12。目前看来,尚无法导入.cer或.pem文件(这是Thawte证书随附的仅有的两个文件)。

看起来您可以使用转换器将.cer或.pem文件转换为.p12,但是需要一个密钥文件。

https://www.sslshopper.com/ssl-converter.html

我不知道从何处获取Thawte证书的密钥文件。


1
我希望这不会被公开。这对我最有帮助。谢谢这个页面上的所有人。
Ricket 2010年

.crt证书也可以正常工作
Lie Ryan

1
在装有Android 2.3.5的HTC设备上,我不得不将文件扩展名更改.pem.crt。之后,我实际上可以从Install from SD card安全性”设置中的选项中找到它。可以将其放在SD卡的根目录或Downloads文件夹中。
JJD 2014年

Openssl还应该能够在各种证书格式之间进行转换。
snaut

Answers:


16

我使用RealmB的Android证书安装程序取得了巨大的成功。您只需上传您的PEM编码(.cer或.pem)文件,然后将手机的浏览器指向提供的链接。不需要私钥。


该网站本身会告知上传的文件是否有效。它给了我无效的证书错误。我在Linux机器上上传了一个具有正确文件权限的文件,效果很好。
so_mv 2013年

1
该网站可能带来安全隐患应与链接一起指出(或引用该网站本身:安全性如何?-不好,您应该仅上传您认为可以公开查看且没有任何副作用的文件。)。
OR Mapper 2013年

这不再起作用:(上传失败
Vitas

6

首先:Android仅了解CA的二进制格式,并且仅支持文件格式* .crt。
第二:Android仅了解* .p12文件格式的用户证书。

因此,您可以检查CA文件的二进制文件还是文本文件非常简单:请使用任何文本编辑器将其打开^

如果有类似0‚ i0‚ Т ,则为二进制。

如果您看到类似

证书:数据:版本:3(0x2)序列号:96:0e:45:58:68:9a:bf:00签名算法:sha1WithRSAEncryption颁发者:C = UA,ST =

然后是文本。在* nix中自己将其转换为二进制非常简单:

openssl x509 -inform PEM -outform DER -in CA.pem -out CA.crt

或只问您的系统管理员。

将CA.crt和usercert.p12复制到SD卡或通过电子邮件发送(如果您在Android上配置了电子邮件客户端,通常下载的附件存储在“下载”文件夹中,实际上没关系)。

转到“安全”并找到类似以下的选项:从SD卡安装证书

首先安装CA.crt,然后安装usercert.p12

转到wifi并建立新连接,无论如何选择802.1x EAP,然后为CA CA.crt和用户证书usercert.p12选择证书(在本例中,我也输入了用户名)。


2
对于将来可能会有所帮助的人:我在SGS4上安装文本格式证书没有问题-但只有在将其移动到“ 下载”文件夹(我的文档不会这样做)并且仅使用问题,而不是通过文件管理器打开CRT文件,而Android在文件管理器中声称文件类型未知(与Nexus 7不同,在Nexus 7上确实如此)。
OR Mapper 2013年

从Chrome保存后,我必须使用Root Cert,而不是站点证书。在Chrome页面中:F12(开发控制台),“安全性”选项卡,“查看证书”,“证书路径”选项卡,单击最上方的根节点,“查看证书”,“详细信息”选项卡,“复制到文件...”按钮,选择DER格式。从谷歌驱动器打开,让我安装证书。验证它是否显示在电话的“设置”,“安全性”,“受信任的凭据”,“用户”中。
柯蒂斯·雅洛普


5

对于寻找此答案的其他人,他们无法使用realmB的解决方案,因为他们无法通过手机访问互联网。
我只是将证书的文件扩展名从.cer更改为.crt,一切正常!感谢 xda线程的用户提供解决方案。


0

这就是解决方案。Android仅在“二进制模式”下接受证书。如果您拥有文本模式(最常见的证书格式)中的证书,则只需将其转换为“ DER Binary”格式即可。之后,将证书推入“ Android设备的下载文件夹”,然后使用“从SD卡安装”菜单安装证书。

适用于Samsung Galaxy,Sony Xperia手机,HTC Phone适用于Android版本3.x和4.x版本

奥利维尔


0

如何将CA证书导入Android手机?

您可以在“使用证书”中找到Android的官方文档。请注意,证书必须是ASN.1 / DER编码的。编码正确后,只需确保扩展名是CRT或CER。如果不是(如您命名ca-cert.der),则将其重命名为ca-cert.crt

如果您具有PEM编码的证书,则使用(按照Dimtry的说明)将其转换为ASN.1 / DER编码:

openssl x509 -in ca-cert.pem -inform PEM -outform DER -out ca-cert.crt

如果有兴趣,系统信任库将被刻录到ROM中,因此您实际上无法对其进行修改。修改信任存储时,实际上是在进行调整/data/misc/keychain,是两个文件之一:cacerts-addedcacerts-removed。请参阅Nikolay Elenkov的ICS信任库实现


0

我已经按照以下步骤设法连接到我的大学网络:

  1. 向大学询问使用它的证书,在我的情况下为DigicertCA。
  2. Google,将其下载(我将其保存在我的Dropbox帐户中),并将其保存在手机的“下载”文件夹中(在我的情况下为Samsung Galaxy S8)。
  3. 在电话上:转到“设置”->“锁定屏幕”和“安全性”->“其他安全性设置”->“从设备存储安装(从存储安装证书)”-如果证书是在电话上下载的(对于我来说是“下载”文件夹,它将被识别并显示为选择)。
  4. 重新启动手机。
  5. 配置网络时,选择CA证书Don't validate after installed on phone

就我而言,它起作用了,希望对您有所帮助。


-1

您可以使用要安装的正确MIME类型从SD卡访问cer / pem,以使用TJWS(Android版)进行安装,因此您无需将证书上传到某个网站。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.