javax.net.ssl.SSLPeerUnverifiedException:未验证主机名XX.XXX.XX.XX:

时间:2018-08-13 14:13:55

标签: java ssl https certificate nativescript

需要一些帮助。 为什么当我启用SSL固定和测试HTTPS时,总是收到如下的javax.net.ssl.SSLPeerUnverifiedException错误消息:

JS: Https.request error javax.net.ssl.SSLPeerUnverifiedException: Hostname XX.XXX.XX.XX not verified:
JS: certificate: sha256/hfR9N2GN2WS1NQuHAAnOUc1gVQCf4f4HrhdlfXXP+Ko=
JS: DN: 1.2.840.113549.1.9.1=#16111315727473401578616d706c652e636f6d,CN=localhost,OU=techops,O=Example > Co,L=Boston,ST=MA,C=US
JS: subjectAltNames: []

我有此代码:

 let dir = knownFolders.currentApp().getFolder('certificate')
     let certificate = dir.getFile('certificate.pem').path
  Https.enableSSLPinning({ host: 'XX.XXX.XX.XX', certificate, allowInvalidCertificates: true, validatesDomainName: false })
    Https.request({
        url: 'https://XX.XXX.XX.XX:3333/login',
        method: 'GET',
        headers: {
            "Content-type": "application/x-www-form-urlencoded",
        },
    }).then(function (response) {
        console.log('Https.request response', response);
    }).catch(function (error) {
        console.error('Https.request error', error);
    })

您能否问我任何想法,这是我的代码中的问题?或任何示例如何解决此错误?

我在等待您的请求。

谢谢

1 个答案:

答案 0 :(得分:0)

尝试将-Djavax.net.debug = ssl:handshake添加到JVM参数。它应该为您提供更好的错误输出。

我从中只能看到的是您使用Java连接的服务器不受信任。即:服务器上的证书是自签名的。

如果您使用的是自签名证书,并且想要解决这个问题,请在这里Accept server's self-signed ssl certificate in Java client进行Pascal Thivent的回答,那么我可以给您提供什么