![](/img/trans.png)
[英]java.security.cert.CertificateException: No subject alternative DNS name matching
[英]“java.security.cert.CertificateException: No name matching localhost found” not able to resolve on Ubuntu 16.04 LTS
我可以通过Web浏览器以及CURL命令访问服务器。 我得到预期的答复。
不幸的是,我无法通过Java代码建立连接,这导致出现以下异常,
线程“主”中的异常javax.net.ssl.SSLHandshakeException:java.security.cert.CertificateException:未找到与本地主机匹配的名称
我确实在下面的链接中找到了解决方案:
对于Ubuntu 14.04: https : //www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-14-04
对于Ubuntu 16.04: https : //www.digitalocean.com/community/tutorials/how-to-create-a-self-signed-ssl-certificate-for-apache-in-ubuntu-16-04
此问题已在Ubuntu 14.04计算机上解决,但在16.04计算机上未解决。 谁能告诉我我在Ubuntu 16.04上做错了什么吗?
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.api.client.config.ClientConfig;
import com.sun.jersey.api.client.config.DefaultClientConfig;
import com.sun.jersey.client.urlconnection.HTTPSProperties;
TrustManager[] certs = new TrustManager[] {new X509TrustManager() {
@Override
public X509Certificate[] getAcceptedIssuers() {
return null;
}
@Override
public void checkServerTrusted(final X509Certificate[] chain, final String authType) throws CertificateException {}
@Override
public void checkClientTrusted(final X509Certificate[] chain, final String authType) throws CertificateException {}
}};
private Client getSSLClient() throws NoSuchAlgorithmException, KeyManagementException {
HostnameVerifier hostnameVerifier = HttpsURLConnection.getDefaultHostnameVerifier();
ClientConfig config = new DefaultClientConfig();
SSLContext ctx = SSLContext.getInstance("TLS");
ctx.init(null, this.certs, null);
config.getProperties().put(HTTPSProperties.PROPERTY_HTTPS_PROPERTIES, new HTTPSProperties(hostnameVerifier, ctx));
Client client = Client.create(config);
return client;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.