Nginx和Tomcat下ssl认证接口
问题总结
- 证书域名和调用域名不匹配
- 调用方和发布方协议类型不一致
问题 1 ,调用方时报错host与证书中的host不匹配
解决方式: 使用与证书中的域名匹配的域名去访问https接口,或在调用的时候设置校验域名setHostnameVerifier为允许所有的域名
问题 2 , 由于SSLv2和SSLv3存在心脏滴血、野兽攻击等漏洞,使用会使项目存在安全风险,故Nginx、Apache服务器目前的最新版本默认配置均已取消SSLv2,SSLv3协议,直接设置TLSv1以上版本,但是jdk1.7得版本在默认情况下会使用sslv3的协议发起https请求, 如果不设置SSLContext的话,会出现连接被重置的错误信息,https无法握手成功;所以如果是jdk1.7时,应该指定SSLContext使用TLSv1(或TLSv1.1、TLSv1.2)协议来发起请求,即可握手成功,进行数据交互。