una seguridad que puedo podido permite lista internet iniciar guarda excepciones ejecucion configuracion confianza bloqueado bloquea aplicacion agregar java exception https

java - seguridad - Nombre de host HTTPS incorrecto: debe ser<sub.domain.com>. ¿Qué causa esto?



su configuracion de seguridad ha bloqueado la ejecucion de una aplicacion que no es de confianza (4)

Me aparece el error "HTTPS hostname wrong:" al intentar conectarme a un servidor usando https. Mi URL se parece a esto

https://sub.domain.com/tamnode/webapps/app/servlet.

Me conecto usando el siguiente código

// Create a URLConnection object for a URL URL url = new URL(requestedURL); HttpURLConnection.setFollowRedirects(false); // connect connection = (HttpURLConnection) url.openConnection(); connection.setDoOutput(true); connection.setRequestProperty("User-Agent", USER_AGENT); //$NON-NLS-1$ OutputStreamWriter wr = new OutputStreamWriter(connection .getOutputStream());

pero luego aparece un error

IOException: HTTPS hostname wrong: should be <sub.domain.com>. at sun.net.www.protocol.https.HttpsClient.checkURLSpoofing ....

Este es un código que funcionó en el pasado pero ya no. Se han producido algunos cambios en la arquitectura del sistema, pero necesito obtener más datos antes de contactar a los responsables.

¿Qué puede causar este error? ¿Puedo desactivar el control URLSpoofing?


Obtuve esta excepción: java.io.IOException: HTTPS hostname wrong: should be <localhost> .

Mi solución es cambiar mi certificado autofirmado y hacer el CN=localhost .

O

Agregue su certificado nombre-de-dominio cn=<domain-name> a su archivo de host probablemente ubicado en c: / windows / system32 / drivers / etc / ...


Parece que el certificado SSL para domain.com ha sido otorgado a sub.domain.com. O, más probablemente, lo que fue domain.com ha cambiado de nombre a sub.domain.com sin actualizar el certificado SSL.


Resuelve mi problema

static { //for localhost testing only javax.net.ssl.HttpsURLConnection.setDefaultHostnameVerifier( new javax.net.ssl.HostnameVerifier(){ @Override public boolean verify(String hostname, javax.net.ssl.SSLSession sslSession) { if (hostname.equals("your_domain")) { return true; } return false; } }); }


tiene razón sobre la causa probable.

También hay una forma de desactivar la verificación falsa.

Puede crear un objeto que implemente HostnameVerifier que devuelva true bajo más circunstancias que ''usual''.

setHostnameVerifier reemplazar el HostnameVerifier predeterminado llamando a setHostnameVerifier en el objeto de conexión en el código de la pregunta.

Esta respuesta fue ''inspirada en'': http://www.java-samples.com/showtutorial.php?tutorialid=211

Encontré ese enlace con esta consulta: http://www.google.com/search?q=https+hostname+wrong+should+be

Una nota más: piense dos veces antes de hacer esto. Creará una debilidad explotable en la seguridad entre sus componentes de cliente y servidor.