然后,CertInstallerMain类局梁开始创建一个线程,并开始run。在run中,因为收到了Credentials.INSTALL_AS_USER_ACTION intent, CertInstallerMain开始判断SD卡是否存在,这里,我们将证书都push到SD卡里了,SD卡当然是存在的。这种情况下,CertInstallerMain类通过其继承的CertFile类开始读取卡里的所有证书文件。CertFile类读取证书的过程很简单:它把自己设置成了一个FileFilter,在accept方法中,CertFile只接收后缀为Credentials.EXTENSION_CRT, Credentials.EXTENSION_P12, Credentials.EXTENSION_CER, Credentials.EXTENSION_PFX的文件。也就是说当前,Android只支持后缀为crt, p12,cer和pfx的数字证书。
接着,当SD卡里只有一个证书的时候它d出一个安装提示框,当SD卡里有一堆证书的时候,它会d出一个证书列表,这个列表由CertFileList类维护,放点击某个证书的时候,会和当SD卡里只有一个证书简清的时候一样,调用installFromFile方法,d出一个对话框。CertFile类的install方法会通知CertInstaller来负责证书的安装。
CertFile类对p12证书和其它证书进行了分类,要是p12证书,我给个对话框,输入完密码就OK了。我这里,还使用了WIFI WAP需要的CA证书进行测试。对于CA证书,当点击d出对话框的“确认”对应的按钮后,它会通过CredentialHelper类建立一个com.android.credentials.INSTALL intent发给com.android.settings.CredentialStorage类。当CertInstaller类启动后它会直接创建一个CredentialHelper类,CredentialHelper类就直接将安装的证书分类成CA和USER,所以当点击“确认”后,CredentialHelper会将CA证书的信息通过Credentials.EXTRA_CA_CERTIFICATES_NAME和Credentials.EXTRA_CA_CERTIFICATES_DATA放到com.android.credentials.INSTALL的intent中。
最后,Settings收到了这个intent,通过installIfAvailable()方法,将CA证书的信息保存到了KeyStore中。然后,Settings可以通过KeyStore来读取保存的证书。
方法1.iPhone 手机、Android 4.0以上系统、黑莓这些手机内置的浏览器都支持“带私钥”的客户端证书PFX, 使用这些手机时,如要如下两步便可以完成:
1、 安装PFX证书, 管理员可以把带私钥的PFX证书文件放在某个共享的地方,手机用户通过这个共享地方(可以是网站),顷李直接点击下载,系统会自姿乎枝动安装,(在安装过程中需要输入访问密迹敏码)
2.直接访问HTTPS的网站。
方法2. Android 2.X 系统 (内置的浏览器不支持)
1.进入列有PFX文件的共享文件夹或是网站目录,下载pfx文件到SD卡的根目录
2.通过Google Play Store,即谷歌电子市场下载 SandroB 这个支持SSL Client的浏览器
支持 2.3 系统的 请点击:https://play.google.com/store/apps/details?id=org.sandrob.stock233&hl=zh_CN
支持 2.2 系统的 请点击:https://play.google.com/store/apps/details?id=org.sandrob&feature=more_from_developer#?t=W10.
备注:如果谷歌链接无法打开,可以在百度搜 SandroB,下载即可。
3. 对于中文网站来说,这个软件对于中文的出错页,不会自动判断,因此打开SandroB中的Setting,把"SSL dialog only on errors" 取消
4. 访问HTTPS网站,系统会d出对话框,上面填您下载的PFX文件的路径,下面的安装密码电询管理员:
方法一:Android 4.0 已经支持用户安装根证书了,只需要将根证书放到sdcard根目录凳昌,然后到设置(Settings) – 安全(Security) – 从存备竖储设备安装(Install from storage)就可以了,但是这样安装需要设置锁屏PIN或密码才可以。
但是,该 *** 作需要每次打开手机输入锁屏PIN或密码,为用户带来很大的麻烦。
方法二:(注意:需要Root 权限才可以)
手仿粗大机获取Root权限后,直接把Base64文本格式的根证书文件复制到etc/security/cacerts文件夹里,然后到设置(Settings) – 安全(Security) – 受信任的凭据(Trusted credentials)里面,此时你要安装的根证书应该会显示已经安装好了。这样安装之后根证书是作为系统证书使用的,而不是按照方法一安装方式的用户证书。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)