Java程序访问https网站报错GitLabApiException: javax.net.ssl.SSLEx

概述:我的gitlab访问地址是https的,我在windows中启动java程序,访问gitlab时报错:GitLabApiException: javax.net.ssl.SSLException:the trustAnchors parameter must be non-empty。出现这个报错是因为https的网站做了加密处理,需要带有证书访问。

解决方案:在java的JDK中导入gitlab的证书

解决步骤:

一、下载ssl证书

1、以谷歌浏览器为例,我们通过浏览器进入https的网页,点击浏览器网址栏的“小锁头”,然后再双击”连接是安全的“

Java程序访问https网站报错GitLabApiException: javax.net.ssl.SSLEx_第1张图片

 2、双击”证书有效“

Java程序访问https网站报错GitLabApiException: javax.net.ssl.SSLEx_第2张图片

3、选择”详细信息“一栏,点击“复制到文件”,然后点击“下一步”

Java程序访问https网站报错GitLabApiException: javax.net.ssl.SSLEx_第3张图片

4、选择”Base64编码 X.509(.CER)“格式, 点击”下一步“,

Java程序访问https网站报错GitLabApiException: javax.net.ssl.SSLEx_第4张图片

5、 选择需要导出的文件目录(我这里直接导出到jdk的bin目录下),点击完成即可在所选目录下看到xxx.cer的文件

Java程序访问https网站报错GitLabApiException: javax.net.ssl.SSLEx_第5张图片

 二、将ssl证书添加到jdk的证书列表中

1、进入jdk的bin目录,在bin目录中打开cmd窗口,输入:keytool -list -keystore "../jre/lib/security/cacerts",提示输入”秘钥库口令“时直接按”回车“,即可查看jdk证书列表中的证书。我的jdk中此时还没有证书

Java程序访问https网站报错GitLabApiException: javax.net.ssl.SSLEx_第6张图片

2、将证书加入jdk的证书库,输入命令:keytool -import -noprompt -trustcacerts -alias gitlab.cer -file ./gitlab.cer -keystore ../jre/lib/security/cacerts -storepass changeit

标红的部分按顺序解释:

gitlab.cer:证书文件名

./gitlab.cer:证书文件所在路径,我这里写的相对路径

../jre/lib/security/cacerts:cacerts的路径

changeit:密码,默认changeit

再次查看证书列表,发现新增了一条证书

Java程序访问https网站报错GitLabApiException: javax.net.ssl.SSLEx_第7张图片 3、重启java程序,该https的网址即可正常访问。

你可能感兴趣的:(gitlab,ssl,https,java)