SSL handshake alert: unrecognized_name error since upgrade to Java 1.7.0

前端 未结 17 3263
栀梦
栀梦 2020-11-22 06:35

I upgraded from Java 1.6 to Java 1.7 today. Since then an error occur when I try to establish a connection to my webserver over SSL:

javax.net.ssl.SSLProtoco         


        
17条回答
  •  说谎
    说谎 (楼主)
    2020-11-22 07:08

    Here is solution for Appache httpclient 4.5.11. I had problem with cert which has subject wildcarded *.hostname.com. It returned me same exception, but I musn't use disabling by property System.setProperty("jsse.enableSNIExtension", "false"); because it made error in Google location client.

    I found simple solution (only modifying socket):

    import io.micronaut.context.annotation.Bean;
    import io.micronaut.context.annotation.Factory;
    import org.apache.http.client.HttpClient;
    import org.apache.http.conn.ssl.NoopHostnameVerifier;
    import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.ssl.SSLContexts;
    
    import javax.inject.Named;
    import javax.net.ssl.SSLParameters;
    import javax.net.ssl.SSLSocket;
    import java.io.IOException;
    import java.util.List;
    
    @Factory
    public class BeanFactory {
    
        @Bean
        @Named("without_verify")
        public HttpClient provideHttpClient() {
            SSLConnectionSocketFactory connectionSocketFactory = new SSLConnectionSocketFactory(SSLContexts.createDefault(), NoopHostnameVerifier.INSTANCE) {
                @Override
                protected void prepareSocket(SSLSocket socket) throws IOException {
                    SSLParameters parameters = socket.getSSLParameters();
                    parameters.setServerNames(List.of());
                    socket.setSSLParameters(parameters);
                    super.prepareSocket(socket);
                }
            };
    
            return HttpClients.custom()
                    .setSSLSocketFactory(connectionSocketFactory)
                    .build();
        }
    
    
    }
    

提交回复
热议问题