Tengo un paquete compatible con Java para hablar con el servidor https en la red. Ejecutar la compilación da la siguiente excepción:
javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
at com.sun.net.ssl.internal.ssl.InputRecord.handleUnknownRecord(Unknown Source)
at com.sun.net.ssl.internal.ssl.InputRecord.read(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(Unknown Source)
Creo que esto se debe a que la conexión establecida con la máquina cliente no es segura. ¿Hay alguna forma de configurar la máquina o los puertos locales para conectarse al servidor https remoto?
HttpURLConnection
hará automáticamente por usted, si no especifica un puerto en absoluto.Debe tener un nombre de dominio SMTP local que se pondrá en contacto con el servidor de correo y establecerá una nueva conexión, también debe cambiar la propiedad SSL en su programación a continuación
fuente
Recibí el mismo mensaje de error cuando olvidé iniciar sesión en el firewall de la compañía, antes de realizar una solicitud POST a través de un proxy.
fuente
Tengo el mismo error. fue porque estaba accediendo al puerto https usando http .. El problema se resolvió cuando cambié http a https.
fuente
Me enfrento al mismo problema con la aplicación Java integrada en Jdevelopr 11.1.1.7 IDE. Resolví el problema desmarcando el uso de las propiedades del proyecto de formulario proxy.
Puede encontrarlo en lo siguiente: Propiedades del proyecto -> (desde el panel izquierdo) Ejecutar / Depurar / Perfil -> Haga clic (editar) en el panel derecho -> Configuración de herramienta desde el panel izquierdo -> desactive la opción (Usar proxy).
fuente
Agregar esto como respuesta, ya que podría ayudar a alguien más tarde.
Tuve que forzar a jvm a usar la pila IPv4 para resolver el error. Mi aplicación solía funcionar dentro de la red de la empresa, pero mientras se conectaba desde casa daba la misma excepción. No hay proxy involucrado. Se agregó el argumento jvm
-Djava.net.preferIPv4Stack=true
y todas lashttps
solicitudes se comportaron normalmente.fuente
Si está ejecutando local usando Spring, le sugiero que use:
A mí me funciona usando la prueba unitaria.
Espero que sea de ayuda!
fuente
Funcionó para mí ahora, he cambiado la configuración de mi cuenta de Google de la siguiente manera:
Aunque he habilitado SSL y TSL mientras ejecuto el programa en este enlace de la misma publicación. Paso mucho tiempo pero me di cuenta y encontré este enlace. Y hecho 2 pasos siguientes y control de configuración en google. :
Deshabilite la verificación en dos pasos (contraseña y OTP)
Habilitación para permitir el acceso a aplicaciones menos seguras ( Permitir aplicaciones menos seguras: ON ) .
Ahora puedo enviar correos usando el programa anterior.
fuente
Como dijo EJP, es un mensaje que se muestra debido a una llamada a un protocolo que no es https. Si está seguro de que es HTTPS, verifique la configuración del proxy de omisión y, en caso de que agregue la URL del host del servicio web a la lista de proxy de omisión
fuente
si la conexión es la prueba FTPS:
FTPSClient ftpClient = nuevo FTPSClient (protocolo, falso);
protocolo = TLS, SSL y falso = isImplicit.
fuente
Estaba enfrentando esta excepción cuando usaba Gmail.
Para usar Gmail tuve que activar "Permitir aplicaciones menos seguras" .
Esta configuración de Gmail se puede encontrar en https://www.google.com/settings/security/lesssecureapps después de iniciar sesión en la cuenta de gmail.
fuente
AQUÍ UNA RESPUESTA MUY IMPORTANTE:
Simplemente cambie la cadena de URL de su API (en su método) de https a http .. Esto también podría ser la causa:
en vez de
fuente
Recibí el mismo problema y se resolvió configurando "proxyUser" y "proxyPassword" en las propiedades del sistema.
junto con "proxyHost" y "proxyPort"
Espero que funcione.
fuente
Resolví mi problema usando el puerto 25 y siguiendo el accesorio
fuente
En caso de que estés corriendo
intente detener los servicios.
No estoy seguro de por qué obtuve un voto negativo por esta respuesta. En nuestra red corporativa, esta es la solución al problema.
fuente
Tengo un error similar al usar el componente de correo de camello para enviar correos electrónicos por gmail smtp.
La solución estaba cambiando del puerto TLS (587) al puerto SSL (465) de la siguiente manera:
fuente
Si está ejecutando el proceso Java desde la línea de comandos en Java 6 o anterior, agregar este interruptor resolvió el problema anterior para mí:
-Dhttps.protocols = "TLSv1"
fuente
Tal vez su certificado predeterminado ha expirado. para renovarlo a través de la consola de administración, vaya a "Seguridad> Certificado SSL y administración de claves> Almacenes de claves y certificados> NodeDefaultKeyStore> Certificados personales", seleccione el alias "predeterminado" y haga clic en "renovar" después de reiniciar WAS.
fuente
Otra razón es tal vez "acceso denegado", tal vez no pueda acceder al URI y reciba la página de respuesta de bloqueo para el acceso a la red interna. Si no está seguro de que su zona de aplicación necesita una regla de firewall, intente conectarse desde la terminal, línea de comando. Para GNU / Linux o Unix, puede intentar ejecutar este comando y ver que el resultado proviene de una regla de bloqueo o una dirección realmente remota:
echo | nc -v yazilimcity.net 443
fuente