使用Keytool为JDK添加https证书信任

在浏览器中访问https是件挺方便的事,与访问http站点相比,也就是地址栏上多个“s”。但是,在java平台上访问https,就有点多。Java虚拟机并不直接使用操作系统的key ring,而是有自己的security manager。与操作系统类似,jdk的security manager默认有一堆的根证书信任。如果你的https站点证书是花钱申请的,被这些根证书所信任,那使用java来访问此https站点会非常方便。但假如,你的https证书是自己签名的,就需要将证书导入至JDK的信任证书中,否则访问时会报SSL错误。假如,你的webserice是基于https来进行访问,而此站点证书是自签名类型的,那么部署时一定要使用keytool进行证书导入,否则无法正常访问。


首先手动导入自己的证书:

先看证书大概位置:

使用Keytool为JDK添加https证书信任_第1张图片

上面是找位置,下面比较重要:

第一步确定位置:

第二步移动我的证书到上面确定位置,并且修改名字为bshcert.cer:

sudo mv ils-test.hcf-bshg.com.cer /usr/java/jdk/jre/lib/security/bshcert.cer

第三步就是导入命令:

sudo keytool -import -noprompt -trustcacerts -alias bshcert -keystore ${JAVA_HOME}/jre/lib/security/cacerts -file ${JAVA_HOME}/jre/lib/security/bshcert.cer

密码一般默认第一个先测试:changeit

                     第二个测试密码:changeme

我用第一个就成功了

查看是否成功如果显示你导入的密码就说明成功了:

keytool -list -keystore ${JAVA_HOME}/jre/lib/security/cacerts -alias bshcert


其中:

-alias 指定别名(推荐和证书同名)

-keystore 指定存储文件(此处固定)

-file 指定证书文件全路径(证书文件所在的目录)

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

此时命令行会提示你输入cacerts证书库的密码,敲入changeit即可,这是java中cacerts证书库的默认密码,当然也可自行修改

####指导qq:179061434

你可能感兴趣的:(使用Keytool为JDK添加https证书信任)