美文网首页
javax.net.ssl.SSLHandshakeExcept

javax.net.ssl.SSLHandshakeExcept

作者: Thresh0ld | 来源:发表于2017-05-24 10:49 被阅读107次

今天在部署Glassfish(payara)服务器时遇到个问题:在api服务里我调用了别人家的SDK(说出来也无妨,其实就是小米家的MiPush),他们的SDK里调用自家的api接口,他们的接口是https方式的,然后问题来了,每次发送Push数据都会抛错,看了下日志,就是标题这样的。有的读者看到这里可能就明白我为什么用错误日志来做标题,因为方便你们搜索到啊。

好了,说下解决思路。(show me the code)

  1. 先看下日志你是访问哪个接口(网址)抛错的。(笔者这里是https://api.xmpush.xiaomi.com/)
  2. 下载该域名的https证书:(大神可用OpenSSL工具一键获取证书,无视下面的步骤)
  • 使用浏览器访问这个网址(笔者这里用的世界之窗,Chrome旧版本也可以,新版本没有查看证书信息这功能了)
  • 点击地址栏的绿色https图标


    证书信息.png
    导出证书向导.png
    选择base64.png
    证书保存位置.png
    完成-保存证书.png
  1. 获取到了该域名的证书了,下一步就是导入证书到你的项目下的cacerts中

首先记得要把你部署的服务停掉。注意下面的命令的路径要根据你的实际情况要更改

  • 查看当前domain的证书

keytool -list -keystore "D:\JavaApplicationServer\payara41\glassfish\domains\domain_express_inquiry\config\cacerts.jks"

![keytool查看证书.png](https://img.haomeiwen.com/i1428538/e92332de4443f489.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

> 提示输入密码,如果你没改过的话,默认密码是changeit

*  导入上面保存的新证书

keytool -import -noprompt -trustcacerts -alias "xmpush" -file "C:\Users\Administrator\Desktop\api.xmpush.xiaomi.com.cer" -keystore "D:\JavaApplicationServer\payara41\glassfish\domains\domain_express_inquiry\config\cacerts.jks" -storepass changeit

![keytool添加证书.png](https://img.haomeiwen.com/i1428538/99732462d34a52a0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![keytool再次查看证书.png](https://img.haomeiwen.com/i1428538/48f752ce1a960f01.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

4.  现在重启你的服务看看,是不是能正常发数据了。





----------

![关注我的公众号.jpg](https://img.haomeiwen.com/i1428538/27b8b23065ed36aa.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

相关文章

网友评论

      本文标题:javax.net.ssl.SSLHandshakeExcept

      本文链接:https://www.haomeiwen.com/subject/ezmnxxtx.html