J'essaie d'activer TLS 1.2 sur Tomcat sur Spring-boot 1.2.1. Android 5.0 ne parvient pas à se connecter aux paramètres SSL par défaut, en raison d'un échec de négociation SSL. Android 4.4, iOS, Firefox et Chrome se connecte tous à la version par défaut. Je pense que cela est dû à un décalage dans les protocoles TLS pris en charge dans Android 5.0 et les valeurs par défaut de Tomcat Spring Boot (TLS v1?).
J'imagine que je veux changer ce paramètre application.properties:
server.ssl.protocol=TLS
mais je n'ai pas localisé les autres cordes acceptables (ou s'il y en a, même). Il n'y a pas d'énumération que je puisse trouver en recherchant "protocole" dans Spring Boot Github . J'ai essayé "TLSv1.2", mais cela semble n'avoir aucun effet.
La configuration SSL actuelle dans application.properties est:
server.ssl.key-store = chainedcertificates.p12
server.ssl.key-store-password = secret
server.ssl.key-store-type = PKCS12
Comment activer TLS 1.2 dans Spring Boot?
Si cela est important, j'utilise Java 1.7. La documentation à ce sujet semble indiquer qu'il devrait prendre en charge TLS 1.2.
Tomcat 8 semble avoir un support présent. Je ne sais pas comment vérifier exactement quelle version est en cours d'exécution dans Spring Boot.
TLS 1.2 est activé par défaut dans Spring-Boot 1.2.1. Cela peut être vérifié en exécutant ce qui suit à partir de la ligne de commande
openssl s_client -connect serverAddress:port
qui sort
SSL-Session:
Protocol : TLSv1.2
Cipher : ECDHE-RSA-AES256-SHA384
Mon problème doit donc être quelque chose de séparé.
Vous pouvez rencontrer une erreur d'établissement de liaison SSL en raison des chiffres par défaut inclus dans Spring Boot. Il est recommandé de définir un ensemble de chiffres. Nous avons eu un problème similaire, et la façon dont nous l'avons résolu était d'utiliser SSLScan sur l'appelant, puis de scanner notre système pour voir s'il y avait des correspondances. Cela nous a amenés à découvrir qu'il n'y avait pas de correspondance et nous a aidés à définir une liste de chiffres que nous devrions prendre en charge.
En utilisant SSLScan , ce sont les chiffrements par défaut que le démarrage à ressort utilisera:
Preferred TLSv1.2 128 bits ECDHE-RSA-AES128-GCM-SHA256 Curve P-256 DHE 256
Accepted TLSv1.2 128 bits ECDHE-RSA-AES128-SHA256 Curve P-256 DHE 256
Accepted TLSv1.2 128 bits ECDHE-RSA-AES128-SHA Curve P-256 DHE 256
Accepted TLSv1.2 128 bits DHE-RSA-AES128-GCM-SHA256 DHE 1024 bits
Accepted TLSv1.2 128 bits DHE-RSA-AES128-SHA256 DHE 1024 bits
Accepted TLSv1.2 128 bits DHE-RSA-AES128-SHA DHE 1024 bits
Pour activer TLS 1.2 et définir la liste de chiffrement, procédez comme suit:
#enable/diable https
server.ssl.enabled=true
#ssl ciphers
server.ssl.ciphers=TLS_RSA_WITH_AES_128_CBC_SHA256, INCLUDE_ANY_OTHER_ONES_YOU_NEED_TO_SUPPORT
# SSL protocol to use.
server.ssl.protocol=TLS
# Enabled SSL protocols.
server.ssl.enabled-protocols=TLSv1.2
Pour une liste de chiffrements, vous pouvez utiliser https://testssl.sh/openssl-rfc.mapping.html et https://msdn.Microsoft.com/en-us/ bibliothèque/windows/desktop/mt813794 (v = vs.85) .aspx