Как включить TLS 1.2 на Spring-boot?
Я пытаюсь включить TLS 1.2 на Tomcat на Spring-boot 1.2.1. Android 5.0 не удается подключиться к настройкам SSL по умолчанию, из-за сбоя SSL рукопожатия. Android 4.4, iOS, Firefox и Chrome подключаются к версии по умолчанию. Я думаю, это из-за несоответствия в протоколах TLS, поддерживаемых в Android 5.0 и весенней загрузке tomcat по умолчанию (TLS v1?).
Я думаю, что хочу изменить это приложение.настройка свойств:
server.ssl.protocol=TLS
но у меня нет расположены другие приемлемые строки (или, если они есть, даже). Нет перечисления, которое я могу найти, выполнив поиск по "протоколу" в весна загрузки github. Я пробовал " TLSv1.2", но это, по-видимому, не имеет никакого эффекта.
текущая конфигурация SSL в приложении.свойства:
server.ssl.key-store = chainedcertificates.p12
server.ssl.key-store-password = secret
server.ssl.key-store-type = PKCS12
Как включить TLS 1.2 в весенней загрузке?
Если это имеет значение, я использую Java 1.7. Документация для этого, похоже, указывает, что она должна поддерживать TLS 1.2.
Tomcat 8, похоже, имеет поддержку. Я не уверен, как проверить, какая именно версия работает в spring boot.
2 ответов
TLS 1.2 включен по умолчанию в spring-boot 1.2.1. Это можно проверить, выполнив следующие действия из командной строки
openssl s_client -connect serverAddress:port
выходы
SSL-Session:
Protocol : TLSv1.2
Cipher : ECDHE-RSA-AES256-SHA384
Так что моя проблема должна быть чем-то отдельным.
вы можете испытать ошибку рукопожатия SSL из-за Шифров по умолчанию, которые включает spring boot. Рекомендуется определить набор шифров. У нас была аналогичная проблема, и то, как мы ее исправили, было с помощью SSLScan на вызывающем абоненте, а затем сканирование нашей системы, чтобы увидеть, если были какие-либо совпадения. Это привело нас к тому, что не было совпадений и помогло нам определить список шифров, которые мы должны поддерживать.
используя SSLScan это по умолчанию шифры spring boot будут использовать:
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
чтобы включить TLS 1.2 и определить список шифров, сделайте следующее:
#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
для списка шифров вы можете использовать https://testssl.sh/openssl-rfc.mapping.html и https://msdn.microsoft.com/en-us/library/windows/desktop/mt813794(v=vs. 85).aspx