Android - 如何在给定证书链的情况下为 SSL 身份验证构建 keystore

标签 android ssl https keystore certificate

我需要使用所有需要的 SSL 证书构建一个 keystore ,以使我的 Android 应用程序通过 https 连接到网络服务器。

这是我的证书链(通过 openssl s_client -connect www.myhost.com:443 获得):

 0 s:/C=US/ST=State/L=Location/O=Organization/OU=Webserver Team/CN=www.myhost.com
   i:/C=US/O=Thawte, Inc./CN=Thawte SGC CA - G2
 1 s:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 2006 VeriSign, Inc. - For authorized use only/CN=VeriSign Class 3 Public Primary Certification Authority - G5
   i:/C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority
 2 s:/C=US/O=Thawte, Inc./CN=Thawte SGC CA - G2
   i:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 2006 VeriSign, Inc. - For authorized use only/CN=VeriSign Class 3 Public Primary Certification Authority - G5
 3 s:/C=US/O=thawte, Inc./OU=Terms of use at https://www.thawte.com/cps (c)06/CN=thawte Extended Validation SSL CA
   i:/C=US/O=thawte, Inc./OU=Certification Services Division/OU=(c) 2006 thawte, Inc. - For authorized use only/CN=thawte Primary Root CA
 4 s:/C=US/O=thawte, Inc./OU=Certification Services Division/OU=(c) 2006 thawte, Inc. - For authorized use only/CN=thawte Primary Root CA
   i:/C=ZA/ST=Western Cape/L=Cape Town/O=Thawte Consulting cc/OU=Certification Services Division/CN=Thawte Premium Server CA/emailAddress=premium-server@thawte.com

我的问题是我不能 100% 确定如何创建要导入我的 android 应用程序的 keystore 。我只能从 Thawte 和 Verisign 网站下载 VeriSign Class 3 Public Primary Certification Authority - G5Thawte Primary Root CA。我找不到另外两个,如果我没记错的话应该是 Thawte SGC CA - G2thawte Extended Validation SSL CA

如果我拥有所有这些,我将继续使用此 answer 中说明的过程创建 keystore 与此类似的问题。

我是不是误会了什么?我真的需要所有 4 个证书吗?我也不确定将这些证书添加到 keystore 时应该使用的顺序(和别名)。重要吗?

最佳答案

如果您的服务器证书是由 VeriSign 签署的,则无需安装它,它很可能已被 Android 信任。你有错误吗?在什么版本?

通常,您只需要在设备的信任库中安装根 (CA) 证书。如果配置正确,所有中间证书都应由服务器发送。

关于Android - 如何在给定证书链的情况下为 SSL 身份验证构建 keystore ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11036454/

相关文章:

javascript - 'play'上执行 'HTMLMediaElement'失败 : API can only be initiated by a user gesture

android - 根据apk签名检索一些信息

amazon-web-services - 在 Amazon AMI (Centos) 上使用 Let's Encrypt - 甚至无法安装包,有什么想法吗?

php - 如何加密非阻塞 PHP 套接字流?

负载均衡器背后的 Wordpress get_template_directory_uri()

wcf - 我可以在没有证书存储且不使用 netsh http add sslcert 的情况下在 WCF 中自行托管 HTTPS 服务吗?

android - 陷入异常错误 :java. util.concurrent.ExecutionException : com. android.ide.common.process.ProcessException :?

perl - Mojo::useragent SSL 失败

java - HttpsURLConnections 默认主机名 validator

android - Android中使用TextView、TextView、RadioGroup自定义ListView