我已经按如下方式安装了我的证书(.crt):将设备连接到我的计算机->将证书复制到内部存储->在设备上转到设置->安全->从存储安装->并得到“安装成功”或其他东西(它要求我输入设备的密码)。
然后我尝试在“设置”->“安全”->“受信任的凭据”中查找它,但在“系统”和“用户”选项卡中都找不到它……(我知道它应该在“用户”选项卡中,但它是空的)。
我认为安装过程没有问题,因为它要求我输入密码(并且在我通过单击安全菜单中的“清除凭据”删除所有证书之前不允许我撤消它)
帮助一些?
谢谢!
我已经按如下方式安装了我的证书(.crt):将设备连接到我的计算机->将证书复制到内部存储->在设备上转到设置->安全->从存储安装->并得到“安装成功”或其他东西(它要求我输入设备的密码)。
然后我尝试在“设置”->“安全”->“受信任的凭据”中查找它,但在“系统”和“用户”选项卡中都找不到它……(我知道它应该在“用户”选项卡中,但它是空的)。
我认为安装过程没有问题,因为它要求我输入密码(并且在我通过单击安全菜单中的“清除凭据”删除所有证书之前不允许我撤消它)
帮助一些?
谢谢!
也有同样的问题。确保您正在安装的证书实际上是 CA 证书,而不仅仅是简单的 x509 证书。不幸的是,ICS 附带的证书安装程序会很乐意安装证书,即使它不是 CA 证书。它会误导性地说证书已成功安装。它甚至会将文件放在 /data/misc/keystore 下。但是,它不会向用户提供无法真正将该证书用于预期目的的反馈。
对于开发/测试,这里有一个关于如何创建这个自签名 CA 证书的方便指南:http: //langui.sh/2009/01/18/openssl-self-signed-ca/
完成所有步骤后(将文件放在 /data/misc/keystore 下并确保证书是 CA),重新启动您的设备,证书应该会出现。
自 API 24 (Android 7.0) 以来,您已将其签入
设置-->安全-->用户凭证
您可以在其中列出所有用户证书。在 API 24 以下,设置中没有显示用户证书的选项(带有私钥的 PKCS12)。我在API 19 21 22 23上检查的最简单的选项是安装证书,完成后转到需要使用Google Chrome应用程序进行双向 SSL身份验证的服务器。谷歌浏览器应该会显示已安装证书的列表。如果在没有 Google Chrome 的情况下使用虚拟设备,您可以从该站点下载它。在虚拟设备的屏幕上下载拖放应用程序后。
这里的答案是一个很好的提示,但是由于 Chrome 接受的正确证书(主题替代名称、摘要算法)的变化,链接帖子中的某些内容已过时
到今天为止,这里是完整的:如果你有一个适当的 CA 证书,它会说“包括:... 1 CA”,如果它只是说一个证书,它将安装但不充当 CA。
首先,创建 myca.conf
[ ca ]
default_ca = myca
[ crl_ext ]
# issuerAltName=issuer:copy #this would copy the issuer name to altname
authorityKeyIdentifier=keyid:always
[ myca ]
new_certs_dir = /tmp
unique_subject = no
certificate = root.cer
database = certindex
private_key = privkey.pem
serial = serialfile
default_days = 365
default_md = sha1
policy = myca_policy
x509_extensions = myca_extensions
[ myca_policy ]
commonName = supplied
stateOrProvinceName = supplied
countryName = supplied
emailAddress = optional
organizationName = supplied
organizationalUnitName = optional
[ myca_extensions ]
basicConstraints = CA:false
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always
keyUsage = digitalSignature,keyEncipherment
extendedKeyUsage = serverAuth
crlDistributionPoints = URI:http://mp-test.com.au/myca.crl
subjectAltName = @alt_names
仅在第一次运行这些命令:
openssl req -newkey rsa:2048 -days 3650 -x509 -nodes -out root.cer
openssl pkcs12 -export -out root.pfx -inkey privkey.pem -in root.cer
cp privkey.pem root.pem
touch certindex
echo 01 > serialfile
现在为每个域运行这些:
domain=www.example.org
openssl req -newkey rsa:2048 -days 3650 -x509 -nodes -out root.cer
openssl req -newkey rsa:2048 -nodes -out ${domain}.csr -keyout ${domain}.key
cat myca.conf > temp.conf
printf "[alt_names]\nDNS.1=${domain}\n" >> temp.conf
openssl ca -md sha512 -batch -config temp.conf -notext -in ${domain}.csr -out ${domain}.cer
openssl x509 -noout -text -in ${domain}.cer
openssl pkcs12 -export -out root.pfx -inkey privkey.pem -in root.cer
root.pfx 是您可以安装在设备上的 CA 证书。${domain.cer} 是您的网站证书,一旦安装了 root.pfx,就应该信任它。