提示:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
一个很简单的富客户端到WEB服务器的连接,基本都能够正常建立连接,唯独公司NEXT、TIMS总是报javax.net.ssl.SSLHandshakeException和sun.security.provider.certpath.SunCertPathBuilderException的异常,网上转了转,找到几篇前辈的文章,摘下点重点以便以后继续剽与窃。
在项目开发中,有时会遇到与SSL安全证书导入打交道,如何把证书导入java的cacerts证书库?简单的用NEXT做个演示:
第一步:IE打开https://next.xxxcorp.cn,把要导入java证书库的证书下载
在该网页安全警报弹出窗口上查看证书--详细信息--复制到文件
会弹出一个证书导出向导对话框,按提示一直下一步直到完成。
我把证书保存在C盘,名字为NEXT_CertKey.cer。
第二步:将上面导出的证书导入java中的cacerts证书库
cmd进入C:\Program Files\Java\jdk1.5.0_06\jre\lib\security目录
敲入如下命令回车执行
keytool -import -alias cacerts
-keystore C:\Program Files\Java\jdk1.5.0_06\jre\lib\security\cacerts
-file C:\NEXT_CertKey.cer
-trustcacerts
此时命令行会提示你输入cacerts证书库密码,
java中cacerts证书库默认密码为changeit,
Y确认即可,OK,认证已添加至keystore。
附:URLConnection、URL
try {
URL url;
url = new URL("https://next.xxxcorp.cn");
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setDoOutput(true);
BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
String input = null;
while ((input = reader.readLine()) != null) {
System.out.println(input);
}
reader.close();
urlConnection.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
- 浏览: 204621 次
- 性别:
- 来自: 大连
相关推荐
NULL 博文链接:https://huang552.iteye.com/blog/677696
nexus的jdk证书cacerts
通过连接到主机并下载证书,简单地导入 Java 密钥库。 应该使用 https、smtp 或 ldap 证书。 要求 安装了Java。 角色变量 java_certificate_host: example.com java_certificate_port: 443 java_certificate_alias:...
这个问题的根本原因是Java的信任存储(通常是JKS格式的证书库,默认位于$JAVA_HOME/lib/security/cacerts文件中)中没有包含服务器证书的根CA证书,或者服务器证书本身不是由受信任的CA签发,或者证书链不完整。...
1. 配置SSL ... c) 将证书文件导入到java证书库cacerts中 d) 修改<TOMCAT_HOME>/conf下面得server.xml文件 2. 部署CAS服务器 3. 修改CAS登录的用户库 4. 测试是否配置成功 5. 配置过程中可能会出现的错误
读取配置文件信息(解决硬编码),生成证书(密钥库JKS导出公钥),单一固定客户端的导入证书到Java的security中的cacerts信任证书库)
安装配置nacl sdk环境时,命令naclsdk update,报错third_party.fancy_urllib....更换证书文件,第一次更换会自动恢复默认,要再更换一次,就好了,具体方法参见:博客https://mp.csdn.net/postedit/72821974,更新部分
(CA证书是公共信息,只有极少数情况需要将其保密,因为您会意识到非常具体的业务需求。) 需要使用JDK的SSL功能的Java程序必须访问cacerts文件,而将解密密码传递给JVM的唯一方法是使用-Djavax.net.ssl....
安装证书 来自Google Code @ 的... 通过覆盖cacerts文件复制到目录中将导致所有Java应用程序信任新证书。 可以通过重新运行“ java InstallCert host:[port]”来验证信任链。 可以在以下位置找到更详细的说明:
cacerts.bks
安装配置nacl sdk环境时,命令naclsdk update,报错third_party.fancy_urllib.InvalidCertificateException: Host storage.googleapis.com returned an invalid certificate ([SSL: CERTIFICATE_VERIFY_FAILED] ...
cacerts jenkins所需的静态文件
其以二进制格式存储,在windows中可以直接导入到密钥区,注意,PKCS#12的密钥库保护密码同时也用于保护Key。 UBER 比较特别,当密码是通过命令行提供的时候,它只能跟keytool交互。整个keystore是通过PBE/SHA1/...
oracle-java-XX-cacerts软件包将JRE oracle-java-XX-cacerts软件包替换为发行版中的ca-certificates。 如果您想信任某些第三方CA,只需将其放置在正确的位置并运行update-ca-certificates 。 用法 下载公钥 # wget ...
此Erlang库包含一个CA捆绑包,您可以在您的Erlang应用程序中引用该捆绑包。 对于没有Erlang可以找到的CA捆绑包的系统,或者统一的CA集合很有价值的系统,这很有用。 这是Erlang特定的端口。 CA捆绑软件源自Mozilla的...
export JAVA_OPTS='-Djavax.net.ssl.trustStore=/vagrant/cacerts_from_ubuntu_18.04' 首先安装sdkman curl -s "https://get.sdkman.io" | bash 然后激活 source "/home/vagrant/.sdkman/bin/sdkman-init.sh" 并...
docker主机的SSL证书是自签名的(安装时由boot2docker创建),因此需要手动添加到Java的cacerts keystore中。 sudo keytool import -alias $DOCKER_HOST -file $DOCKER_CERT -keystore $JAVA_HOME/jre/lib/security/...
aws MongoDB 开启TLS认证脚本,需进行修改,keytool import导入至java自带的密钥库。oracle jdk:$JAVA_HOME/jre/lib/security/cacerts openjdk:$JAVA_HOME/lib/security/cacerts
keytool -import -alias netty -keystore "/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home/jre/lib/security/cacerts" -file "/var/folders/tt/4b2h8vqd38s_q0541w07yryh0000gn/T/keyutil_...