2017-02-17 25 views
1

Я использую новейшие причалы и jdk, он должен поддерживать комплекты шифрования DSA, такие как TLS_DHE_DSS .... Поэтому я сгенерировал файл сертификата и пары ключей с алгоритмом DSA, загрузил он на мой сервер и перезапустил мой сервер, сервер начал успешно. Но после этого я не мог использовать какой-либо браузер для открытия любой страницы этого сервера. Все, что я видел, это сообщение об ошибке на странице: ERR_SSL_VERSION_OR_CIPHER_MISMATCH.DSA-шифровальные наборы, не поддерживаемые встроенным причалом 9.4 в java

Может ли кто-нибудь помочь мне с этим? Есть ли проблема с причалом для DSA?

ответ

1

Там нет смысла спамить как StackOverflow И в github issues (мы обращаем внимание на оба)

до точки АСС в вашем Keytool/хранилище, вы не можете использовать это для SSL/TLS (не поддерживается Jetty , Java и даже различные версии протокола SSL/TLS. DSA - это просто алгоритм подписи/проверки, он не требует шифрования/дешифрования/обмена ключами для SSL/TLS).

Используйте RSA для хранилища ключей и укажите алгоритм SHA256 (или выше) и бит размером 4096 (или лучше).

Дамп вашего запуска и посмотрите, почему шифры, которые вас интересуют, отключены.

$ cd /path/to/my/jettybase 
$ java -jar /path/to/jetty-dist/start.jar jetty.server.dumpAfterStart=true 

Посмотрите на SslContextFactory дерева и Cipher Suites ветвь. В разделе Disabled будет приведен список всех отключенных наборов шифров, а также укажите, где этот конкретный набор шифров был отключен.

Увидишь ...

  • JreDisabled, что означает, что сама JVM имеет его выключенным.
  • ConfigExcluded Это означает, что ваша конфигурация ${jetty.base} отключена.

В любом случае вы захотите ознакомиться с документацией, чтобы понять, как ее настроить для удовлетворения ваших конкретных потребностей.

0

У меня возникла аналогичная проблема с встроенным Jetty в OpenNMS. Wireshark capture showing Ciphers offered by the browser

Насколько я могу судить, существует несколько распространенных шифров и версий TLS между тем, что предлагается браузером, и тем, что поддерживается Jetty, и тем не менее Jetty отклоняет соединение с вышеупомянутым сообщением об ошибке с несоответствующим шифрованием. Кажется, что все три основных браузера не совпадают с неудачей Fatal Hanshake (TLS1.2). Однако использование имени хоста без FQDN для создания несоответствия имени узла/домена позволяет пользователю настраивать исключение сайта и TLS для «успеха» с помощью TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA и TLS v1.2. Поэтому представляется, что шифры не являются проблемой. Что-то еще в рукопожатии вызывает сбой Jetty, и браузеры неправильно интерпретируют ответ как несоответствие шифрования.

От причала после старта отвала:

| | += [email protected](file:///opt/opennms/etc/jetty.keystore,file:///opt/opennms/etc/jetty.keystore) trustAll=false 
| | | +- Protocol Selections 
| | | | +- Enabled (size=3) 
| | | | | +- TLSv1 
| | | | | +- TLSv1.1 
| | | | | +- TLSv1.2 
| | | | +- Disabled (size=2) 
| | | |  +- SSLv2Hello - ConfigExcluded:'SSLv2Hello' 
| | | |  +- SSLv3 - JreDisabled:java.security, ConfigExcluded:'SSLv3' 
| | | +- Cipher Suite Selections 
| | |  +- Enabled (size=42) 
| | |  | +- TLS_DHE_DSS_WITH_AES_128_CBC_SHA 
| | |  | +- TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 
| | |  | +- TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 
| | |  | +- TLS_DHE_DSS_WITH_AES_256_CBC_SHA 
| | |  | +- TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 
| | |  | +- TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 
| | |  | +- TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 
| | |  | +- TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 
| | |  | +- TLS_DHE_RSA_WITH_AES_256_CBC_SHA 
| | |  | +- TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 
| | |  | +- TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 
| | |  | +- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA 
| | |  | +- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 
| | |  | +- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 
| | |  | +- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA 
| | |  | +- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 
| | |  | +- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 
| | |  | +- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 
| | |  | +- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 
| | |  | +- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 
| | |  | +- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA 
| | |  | +- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 
| | |  | +- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 
| | |  | +- TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA 
| | |  | +- TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 
| | |  | +- TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 
| | |  | +- TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA 
| | |  | +- TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 
| | |  | +- TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 
| | |  | +- TLS_ECDH_RSA_WITH_AES_128_CBC_SHA 
| | |  | +- TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 
| | |  | +- TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 
| | |  | +- TLS_ECDH_RSA_WITH_AES_256_CBC_SHA 
| | |  | +- TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 
| | |  | +- TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 
| | |  | +- TLS_EMPTY_RENEGOTIATION_INFO_SCSV 
| | |  | +- TLS_RSA_WITH_AES_128_CBC_SHA 
| | |  | +- TLS_RSA_WITH_AES_128_CBC_SHA256 
| | |  | +- TLS_RSA_WITH_AES_128_GCM_SHA256 
| | |  | +- TLS_RSA_WITH_AES_256_CBC_SHA 
| | |  | +- TLS_RSA_WITH_AES_256_CBC_SHA256