注意:JAVA_HOME: C:\Java\jdk1.8.0_333,
先cd到security目录下,再执行导入操作
密钥默认口令:changeit
C:\Java\jdk1.8.0_333\jre\lib\security>keytool -import -alias jkk -keystore cacerts -file D:\jkk_ssl.cer
输入密钥库口令:
所有者: O=Internet Widgits Pty Ltd, L=XIANYANG, ST=SHANXI, C=CN
发布者: O=Internet Widgits Pty Ltd, L=XIANYANG, ST=SHANXI, C=CN
序列号: 5f42e12562849f711a438985379eb01b1f915a71
生效时间: Sat Sep 03 17:08:44 CST 2022, 失效时间: Tue Aug 31 17:08:44 CST 2032
证书指纹:
SHA1: 15:F6:C6:DE:1C:F7:01:D9:2F:8A:A6:27:55:B0:6C:24:03:6C:96:61
SHA256: 88:CE:E5:E6:47:54:FC:08:21:33:0B:60:19:24:22:29:E3:90:57:B1:21:B6:4F:A3:15:14:1E:12:B1:74:6D:E3
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 1
是否信任此证书? [否]: Y
证书已添加到密钥库中
C:\Java\jdk1.8.0_333\jre\lib\security>keytool -list -keystore cacerts -alias jkk
输入密钥库口令:
jkk, 2023-1-11, trustedCertEntry,
证书指纹 (SHA-256): 88:CE:E5:E6:47:54:FC:08:21:33:0B:60:19:24:22:29:E3:90:57:B1:21:B6:4F:A3:15:14:1E:12:B1:74:6D:E3
三、问题处理
运行,报如下错误:
javax.net.ssl.SSLException: Certificate subject for
原因:
是在生成证书的时候没有设置Common Name即主域名,默认是空,请求的时候是IP地址请求
处理办法:
修改httpclient-4.5.9源码:
org.apache.http.conn.ssl.AbstractVerifier.java
org.apache.http.conn.ssl.DefaultHostnameVerifier.java
AbstractVerifier.java
public final void verify(String host, SSLSocket ssl) throws IOException
{
Args.notNull(host, "Host");
}
public final boolean verify(String host, SSLSession session)
{
return true;
}
public final void verify(String host, X509Certificate cert)
throws SSLException
{}
DefaultHostnameVerifier.java
public boolean verify(String host, SSLSession session)
{
return true;
}
public void verify(String host, X509Certificate cert) throws SSLException
{}
static void matchCN(String host, String cn, PublicSuffixMatcher publicSuffixMatcher)
throws SSLException
{}
把原包中的类替换掉,重新打包httpclient-4.5.9.jar,然后把新打包的jar文件放到: kettle目录下lib文件夹进行文件替换。
再次运行:成功。
下载: httpclient-4.5.9.jar
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧