使用官网的证书和代码进行tls双向认证报错

请问这是哪里出问题了,证书是用的etc/certs下的, 代码用的github上的MqttTwoWayTlsSample
Caused by: java.security.cert.CertificateException: No subject alternative names present
at sun.security.util.HostnameChecker.matchIP(HostnameChecker.java:150)
at sun.security.util.HostnameChecker.match(HostnameChecker.java:99)
at sun.security.ssl.X509TrustManagerImpl.checkIdentity(X509TrustManagerImpl.java:441)
at sun.security.ssl.X509TrustManagerImpl.checkIdentity(X509TrustManagerImpl.java:409)
at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:228)
at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:128)
at sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:636)

你是指这个例子么:

如果是的话,建议你去这个github issue上问一下,这样可以得到更专业的回复。
单看这个crash 也看不出具体是那里的问题。

你们有调用成功的示例吗

在我看来,这个库的例子应该都是至少在开发者当时的环境都是能成功调用的。
我觉得可能和你的具体环境有关。

这是我当时自签名证书进行双向验证的一些总结,可以看下有无帮助

指定openssl的配置文件,里面有subjectAltName的配置