Quiero saber si Apache Tomcat admite el protocolo TLS v1.2. ¡No encontré ninguna documentación sobre esto! ¡Gracias!¿Tomcat admite TLS v1.2?
Respuesta
TLS versión 1.2 es compatible con Oracle JDK versión 7, en la implementación de JSSE. Como Tomcat usa JSSE como biblioteca SSL subyacente, debe ser compatible con JDK versión 1.7 en adelante. También verifique sus suites de cifrado SSL habilitadas en Tomcat.
Si está utilizando Apache como un proxy, consulte la documentación de Apache y subyacente de OpenSSL.
Algunos enlaces:
http://docs.oracle.com/javase/7/docs/technotes/guides/security/enhancements-7.html (Java SE 7 Mejoras en la seguridad)
También estaba buscando para actualizar sslProtocol a TLSv1.1 y como se menciona en el siguiente enlaces en Java6 y Java7
Java6 http://docs.oracle.com/javase/6/docs/technotes/guides/security/SunProviders.html Java7 http://docs.oracle.com/javase/7/docs/technotes/guides/security/SunProviders.html
El SSLContext apoyado en java6 son SSL, TLSv1 y en Java7 SSL, TLSv1, TLSv1.1 y TLSv1.2 son compatibles.
Por lo tanto, para habilitar TLSv1.1 o TLSv1.2 en tomcat, simplemente actualice a Java7 y cambie el sslProtocol en el conector en server.xml de tomcat.
Como lo mencionaron otros, Tomcat admite TLSv1.2 a través de JSSE en JDK 7+.
Tomcat NO es compatible con TLSv1.1 o TLSv1.2 cuando se utiliza con Tomcat Native (APR). Ver https://issues.apache.org/bugzilla/show_bug.cgi?id=53952.
Actualización: parece que finalmente se admitirá TLSv1.2 en Tomcat Native 1.1.32 y Tomcat 8.0.15/7.0.57.
Tengo un caso de uso similar, que es para permitir que Tomcat 7 use estrictamente solo TLSv1.2, para no recurrir a protocolos SSL anteriores como TLSv1.1 o SSLv3. Los siguientes pasos responderán cómo habilitar Tomcat para admitir TLSv1.2.
Estoy usando: C: \ apache-tomcat-7.0.64-64bit y C: \ Java64 \ jdk1.8.0_60.
siguiendo estas instrucciones: https://tomcat.apache.org/tomcat-7.0-doc/security-howto.html. Tomcat es relativamente simple de configurar el soporte de SSL.
De muchas referencias he probado muchas combinaciones, finalmente encontré 1 que forzará a Tomcat 7 a aceptar TLSv1.2 solamente. 2 lugares necesarios para tocar:
1) En C: \ apache-tomcat-7.0.64-64bit \ conf \ server.xml
<Connector port="8443"
protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
keystoreFile="ssl/.keystore" keystorePass="changeit"
clientAuth="false" sslProtocol="SSL" sslEnabledProtocols="TLSv1.2" />
donde
keyStoreFile = local confianza autofirmado tienda
org.apache.coyote.http11.Http11Protocol = Implementación JSSE BIO.
No utilizamos org.apache.coyote.http11.Http11AprProtocol, ya que funciona con openssl. El openssl subyacente retrocederá para admitir protocolos SSL anteriores.
2) Cuando inicie Tomcat, habilite los siguientes parámetros de entorno.
set JAVA_HOME=C:\Java64\jdk1.8.0_60
set PATH=%PATH%;C:\Java64\jdk1.8.0_60\bin
set CATALINA_HOME=C:\apache-tomcat-7.0.64-64bit
set JAVA_OPTS=-Djdk.tls.client.protocols="TLSv1.2" -Dsun.security.ssl.allowUnsafeRenegotiation=false -Dhttps.protocols="TLSv1.2"
JAVA_OPTS restricción se requiere, de lo contrario Tomcat (que es accionado por Java8) caerá de nuevo para apoyar protocolos SSL anteriores.
Puesta en servicio Tomcat C: \ apache-tomcat-7.0.64-64bit \ bin \ startup.bat
Podemos ver JAVA_OPTS aparece en el registro de inicio de Tomcat.
Oct 16, 2015 4:10:17 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djdk.tls.client.protocols=TLSv1.2
Oct 16, 2015 4:10:17 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dsun.security.ssl.allowUnsafeRenegotiation=false
Oct 16, 2015 4:10:17 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dhttps.protocols=TLSv1.2
Luego, podemos usar el comando openssl para verificar nuestra configuración. Primero, conecte localhost: 8443 con el protocolo TLSv1.1. Tomcat se niega a responder con el certificado del servidor.
C:\OpenSSL-Win32\bin>openssl s_client -connect localhost:8443 -tls1_1
Loading 'screen' into random state - done
CONNECTED(000001C0)
5372:error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number:.\ssl\s3_pkt.c:362:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 5 bytes and written 0 bytes
Conectar localhost: 8443 con el protocolo TLSv1.2, Tomcat respuestas ServerHello con el certificado:
C:\OpenSSL-Win32\bin>openssl s_client -connect localhost:8443 -tls1_2
Loading 'screen' into random state - done
CONNECTED(000001C0)
depth=1 C = US, ST = Washington, L = Seattle, O = getaCert - www.getacert.com
verify error:num=19:self signed certificate in certificate chain
---
Certificate chain
0 s:/C=SG/ST=SG/L=Singapore/O=Xxxx/OU=Development/CN=Myself
i:/C=US/ST=Washington/L=Seattle/O=getaCert - www.getacert.com
1 s:/C=US/ST=Washington/L=Seattle/O=getaCert - www.getacert.com
i:/C=US/ST=Washington/L=Seattle/O=getaCert - www.getacert.com
---
Server certificate
-----BEGIN CERTIFICATE-----
(ignored)
-----END CERTIFICATE-----
subject=/C=SG/ST=SG/L=Singapore/O=Xxxx/OU=Development/CN=Myself
issuer=/C=US/ST=Washington/L=Seattle/O=getaCert - www.getacert.com
---
No client certificate CA names sent
Peer signing digest: SHA512
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 2367 bytes and written 443 bytes
Esto demuestra que Tomcat ahora responde estrictamente a la solicitud TLSv1.2 solamente.
- 1. ¿Admite iOS la compresión TLS?
- 2. ¿Dart admite las conexiones SSL/TLS del cliente?
- 3. Evento de apretón de manos TLS en Tomcat, ¿hay algo como eso?
- 4. SSL/TLS sin certificados
- 5. zócalo Java TLS-PSK
- 6. STARTTLS vs SSL/TLS
- 7. Jenkins SMTP TLS
- 8. Canales Java.nio y TLS
- 9. Problema en tomcat 7.0 para configurar tomcat para admitir ssl
- 10. Uso de JavaMail con TLS
- 11. Análisis de mensaje TLS Handshake
- 12. IMAP + TLS/SSL con sinapsis?
- 13. Entender el protocolo TLS/SSL
- 14. TLS/SRP en los navegadores?
- 15. TLS con SNI en clientes Java
- 16. Conexión Apache Ant FTP sobre TLS
- 17. ldapsearch sobre SSL/TLS no funciona
- 18. ftp_ssl_connect con ftp implícito sobre tls
- 19. Implementación de TLS 1.2 en Android 2.3.3
- 20. conexión TLS y Android certificado autofirmado
- 21. Java NIO2 AsynchronousSocketChannel/AsynchronousServerSocketChannel y TLS/SSL
- 22. Uso de tls-extra para smtp simple
- 23. ¿Golang TLS es compatible con IE8?
- 24. Tomcat 7 SSL Falló
- 25. SSL en Tomcat 7
- 26. qué idioma del servidor nginx webserver admite
- 27. Cómo encontrar qué versión de SSL/TLS se usa en Java
- 28. mvn tomcat: la ejecución no inicia Tomcat
- 29. Configuración SSL (auto firmado CERT) con Tomcat
- 30. Configuración de Tomcat para usar SSL
Tomcat no es compatible con TLS en absoluto. Es Java (a través de JSSE) o OpenSSL que lo admite. La versión de TLS que admiten depende de la versión que sean. Tu pregunta está mal formada. – EJP