У меня работает работающая веб-служба Apache Tomcat 7
со следующим соединительным элементом в server.xml
:
<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol"
SSLEnabled="true"
maxThreads="150"
scheme="https"
secure="true"
clientAuth="false"
keystoreFile="C:\Java\myhost.keystore"
keystorePass="importkey"
sslProtocol="TLS"
/>
Это работало нормально в течение многих лет, но теперь новый Logjam
возникла угроза безопасности, и я пытаюсь защитить свой веб-сервис, используя Руководство по развертыванию Diffie-Hellman для TLS инструкции.
Итак, я добавил следующую строку в <connector>
элемент:
ciphers = "ECDHE-RSA-AES128-GCM-SHA256, ECDHE-ECDSA-AES128-GCM-SHA256, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-ECDSA-AES256-GCM-SHA384, AES256-GCM-SHA384, DHESE-DHM12 RSA384, -SHA256, DHE-DSS-AES128-GCM-SHA256: kEDH + AESGCM: ECDHE-RSA-AES128-SHA256: ECDHE-ECDSA-AES128-SHA256: ECDHE-RSA-AES128-SHA: ECDHE-A128-ECDHE-ECDHE-E128 -RSA-AES256-SHA384: ECDHE-ECDSA-AES256-SHA384: ECDHE-RSA-AES256-SHA, ECDHE-ECDSA-AES256-SHA, DHE-RSA-AES128-SHA256, DHE-RSA-AES128-DSSA -AES128-SHA256, DHE-RSA-AES256-SHA256, DHE-DSS-AES256-SHA, DHE-RSA-AES256-SHA, AES128-GCM-SHA256, AES256-GCM-SHA384, AES128-SHA256, AES6256-SHA256, AES256-SHA256, AES256-SHA -SHA, AES256-SHA, AES, CAMELLIA, DES-CBC3-SHA "
Tomcat перезагружается нормально, но я больше не могу подключиться к своей веб-службе.
Изучив журнал, я заметил такую строку:
ВНИМАНИЕ! Ни один из указанных шифров не поддерживается механизмом SSL: ECDHE-RSA-AES128-GCM-SHA256, ECDHE-ECDSA-AES128-GCM-SHA256, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-ECDSA-AES GCM-SHA384, DHE-RSA-AES128-GCM-SHA256, DHE-DSS-AES128-GCM-SHA256: kEDH + AESGCM: ECDHE-RSA-AES128-SHA256: ECDHE-ECDSA-AES128-SHA256- E-AES128-SHA128- E- SHA: ECDHE-ECDSA-AES128-SHA: ECDHE-RSA-AES256-SHA384: ECDHE-ECDSA-AES256-SHA384: ECDHE-RSA-AES256-SHA, ECDHE-ECDSA-AES256-SHA, AES256-SHA, AES256-SHA-DHES6 DHE-RSA-AES128-SHA, DHE-DSS-AES128-SHA256, DHE-RSA-AES256-SHA256, DHE-DSS-AES256-SHA, DHE-RSA-AES256-SHA, AES128-GCM-SHA256, AES256-GCM- SHA384, AES128-SHA256, AES256-SHA256, AES128-SHA, AES256-SHA, AES, CAMELLIA, DES-CBC3-SHA
Что мне не хватает, пытаясь заставить Tomcat использовать только эти шифры?
Как сделать так, чтобы они поддерживались механизмом SSL?
Как объяснено Вот вам, возможно, придется установить ciphers
список вроде этого:
sslProtocols = "TLS"
ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA,
TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,
TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,SSL_RSA_WITH_RC4_128_SHA"
Первая часть, ECDHE, определяет, какой алгоритм обмена ключами следует использовать. [...]
Далее идет алгоритм аутентификации RSA. [...]
Массовый шифр, AES128-GCM, является основным алгоритмом шифрования и используется для шифрования всего трафика. [...]
Последняя часть, SHA256, определяет используемый дайджест сообщения, который проверяет подлинность сообщений.