导入信任证书到JDK


一、导出证书

在 IE 浏览器中

image-20230228213700470

点击导出后下一步

image-20230228213958583

选择1,3

image-20230228214045299

输入私钥的保护密码(此密码为使用或导出私钥时使用);

image-20230228214213735

之后选择路径后保存即可

image-20230228214330697

二、PFX和CER证书

Pfx证书,同时包含了公钥信息和私钥信息(用私钥加密进行签名证明是本人签名,用公钥解密对签名进行进行验证,证明签名的合法性)

PFX也称为PKCS#12(Public Key Cryptography Standards #12,公钥密码技术标准#12),包含KEY文件(RSA PRIVATE KEY,RSA私钥) + CRT文件(CERTIFICATE,证书)。常见的扩展名是: .pfx 和 .p12

Cer证书只包含公钥信息

如果客户端与网站通信时需要用到私钥(基本所有需要数字证书的网站都会用到私钥),则cer证书是无法正常访问网站的,网站会提示“该页要求客户证书”

由于cer证书只包含公钥信息,一般只能用于解密使用(解密该公钥对应的私钥加密的数据)。

Pfx证书既可以导出为pfx证书,也可以导出为cer证书。

Pfx证书导出时,会提示是否导出私钥,导出私钥即pfx证书,不导出则是cer证书。

如果选择导出私钥,出于安全性考虑,浏览器会提示你指定一个密码用于保护该私钥,日后再次导入该pfx证书时,浏览器会要求你提供该私钥保护密码。

导入pfx证书时,需要指定私钥保护密码,另外还有一个选项“标志此密钥为可导出密钥。这将允许您稍后备份或传输密钥”,出于安全性考虑,该选项默认是不勾选的,如果不勾选,下次从浏览器导出该证书时,则无法导出pfx格式了,只能导出不包含私钥的cer格式了。

Pfx证书导入时,如果未勾选“密钥可导出”,则下次导出时,由于无法导出私钥,只能导出cer证书了。

Cer证书不能导出为pfx证书。

其他证书类型

  • .DER:用二进制DER编码的证书;

  • .PEM:用ASCLL(BASE64)编码的证书;

  • .CER:存放公钥,没有私钥;

  • .PFX:存放公钥和私钥(pem 后缀的证书都是base64编码;der 后缀的证书都是二进制格式;crt .cer 后缀的文件都是证书文件(编码方式不一定,有可能是.pem,也有可能是.der);

.pfx 主要用于windows平台,浏览器可以使用,也是包含证书和私钥,获取私钥需要密码才可以)

三、证书导入 JDK

1、导入

JDK 默认证书存储文件路径 \jdk1.8.0_121\jre\lib\security\cacerts

keytool -import -alias cer_mob -keystore cacerts -file D://cer_mob.cer

-alias 指定别名(推荐和证书同名)
-keystore 指定存储文件(此处固定)
-file 指定证书文件全路径(证书文件所在的目录)

注意:当切换到 cacerts 文件所在的目录时,才可指定 -keystore cacerts, 否则应该指定全路径;

库密钥口令输入:changeit

确认:Y

如果证书存储文件不存在,则会自动创建;如果存在,则添加到信任库中

如果异常:keytool’ 不是内部或外部命令,也不是可运行的程序 或批处理文件

就需要配置JDK的环境变量,然后重启CMD

2、查看证书列表

keytool -list -keystore cacerts 

3、删除原证书,导入新证书

keytool -delete -alias cer_mob -keystore cacerts 
keytool -import -alias cer_mob -file /路径/cer_mob.cer -keystore cacerts -trustcacerts

4、查看某一个证书 (cer_mob)

keytool -list -keystore cacerts -alias cer_mob

库密钥口令输入:changeit


  目录