Java 访问 influxdb 出现 unable to find valid certification path to requested target
不只是访问 influxdb,Java在访问SSL加密的网站时,都可能会出现找不到合适的证书或者证书不正确的错误。根本原因是由于:Java 访问 SSL 加密网站时,需要从JDK的KeyStore 里面去查找相对应得可信证书,如果不能从默认或者指定的KeyStore 中找到可信证书,就会报这个错误。
所以,解决方法可以将证书添加到 JDK 中。
具体方法如下:
首先,准备服务器证书(我这里准备 influxdb 中使用的证书)
www.xxx.com.crt
将这个crt 证书转换为 cer 格式:
- 首先,cd 进入 JDK 的目录:
cd /usr/local/java/jdk1.8/jre/lib/security
- 执行转换命令
openssl x509 -in 证书名.crt -out 转换成cer的证书名.cer -outform der
如:
openssl x509 -in mic.crt -out mic_cer.cer -outform der
然后,将证书安装到 JDK:
keytool -import -v -trustcacerts -alias mic -file mic_cer.cer -storepass changeit -keystore cacerts