web-dev-qa-db-fra.com

Comment activez-vous TLS 1.2 sur Spring-boot?

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.

16
mattm

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é.

11
mattm

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

20
Dot Batch