Имеем tomcat 9.0.17, jdk8/12 и попытки настроить https на 8443 порту только с приемлемыми ciphers.
Вот такой вот коннектор:
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol" SSLImplementationName="org.apache.tomcat.util.net.jsse.JSSEImplementation" port="8443" maxthreads="150" minsparethreads="25" maxsparethreads="75" enablelookups="false" disableuploadtimeout="true" acceptcount="100" debug="0" scheme="https" secure="true" SSLEnabled="true">
<SSLHostConfig protocols="TLSv1.2" ciphers="TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384">
<Certificate certificateKeyalias="server" certificateKeystoreFile="conf/server.jks" certificateKeystorePassword="keystore" />
</SSLHostConfig>
</Connector>
Кнопка "Шифры" в http://127.0.0.1:8080/manager/html/ выдаёт то, что и сконфигурено:
Connector[HTTP/1.1-8443]-_default_
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
Но реально FireFox ругается словом SSL_ERROR_NO_CYPHER_OVERLAP, и nmap утверждает, что не видит каких-либо шифров:
PORT STATE SERVICE VERSION
40043/tcp open ssl/unknown
Я правильно понимаю, что копать надо куда-то в сторону crypto.policy=unlimited в java.security?
А может ещё куда-то?
Подскажите, плс.
Upd: решено. Причина была в server.jks - там использовался
Signature algorithm name: SHA1withDSA
Subject Public Key Algorithm: 1024-bit DSA key
Как только заменили на
Signature algorithm name: SHA256withRSA
Subject Public Key Algorithm: 2048-bit RSA key
сразу всё заработало.