Настройка SSL на Jetty

#java #ssl #jetty #keystore #jetty-9

#java #ssl #jetty #хранилище ключей #jetty-9

Вопрос:

Я пытаюсь настроить свою среду jetty, чтобы иметь безопасное соединение.

Я выполнил шаги, описанные в официальной документации jetty:https://www.eclipse.org/jetty/documentation/9.4.31.v20200723/jetty-ssl-distribution.html . но безуспешно..

Шаги по воссозданию:

  1. java -jar start.jar —create-startd —добавить в начало=ssl
  2. java -jar start.jar —add-to-start=ssl, шифрование
  3. java -jar start.jar —add-to-startd=ssl,https
  4. обновите start.d/ssl.ini значениями:
 --module=ssl
jetty.ssl.host=0.0.0.0
jetty.ssl.port=8583
jetty.sslContext.keyStorePath=etc/keystore
jetty.sslContext.trustStorePath=etc/keystore
jetty.sslContext.keyStorePassword=OBF:
jetty.sslContext.keyManagerPassword=OBF:
jetty.sslContext.trustStorePassword=OBF:
 #Enable client certificate authentication.
jetty.sslContext.needClientAuth=true

  

Для создания хранилища ключей я выполнил следующие действия:

 openssl genrsa -des3 -out jetty.key
openssl req -new -x509 -key jetty.key -out jetty.crt
keytool -keystore keystore -import -alias jetty -file jetty.crt -trustcacerts
openssl req -new -key jetty.key -out jetty.csr
openssl pkcs12 -inkey jetty.key -in jetty.crt -export -out jetty.pkcs12
keytool -importkeystore -srckeystore jetty.pkcs12 -srcstoretype PKCS12 -destkeystore keystore
  

В качестве последнего шага я запутал пароль и обновил его в файле start.d / ssl.ini.

ПРОБЛЕМА

Я столкнулся с ошибкой, которая говорит что-то вроде

 2020-09-28 13:51:46.896:INFO::main: Logging initialized @523ms to org.eclipse.jetty.util.log.StdErrLog
2020-09-28 13:51:47.387:WARN:oejs.HomeBaseWarning:main: This instance of Jetty is not running from a separate {jetty.base} directory, this is not recommended.  See documentation at http://www.eclipse.org/jetty/documentation/current/startup.html
2020-09-28 13:51:47.414:INFO:oejs.Server:main: jetty-9.4.31.v20200723; built: 2020-07-23T17:57:36.812Z; git: 450ba27947e13e66baa8cd1ce7e85a4461cacc1d; jvm 11.0.8 10-LTS
2020-09-28 13:51:47.460:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:///opt/jetty-distribution-9.4.31.v20200723/webapps/] at interval 1
2020-09-28 13:51:47.796:INFO:oejus.SslContextFactory:main: x509=X509@6853425f(jetty,h=[jettyhttp2sample.organicdesign.org],w=[]) for Server@5a9f4771[provider=Conscrypt,keyStore=file:///opt/jetty-distribution-9.4.31.v20200723/etc/keystore,trustStore=file:///opt/jetty-distribution-9.4.31.v20200723/etc/keystore]
2020-09-28 13:51:47.799:INFO:oejus.SslContextFactory:main: Unable to get KeyManagerFactory instance for algorithm [SunX509] on provider [Conscrypt], using default
2020-09-28 13:51:47.882:INFO:oejs.AbstractConnector:main: Started ServerConnector@46c1a1fc{SSL, (ssl, http/1.1)}{localhost:8443}
2020-09-28 13:51:47.886:INFO:oejs.AbstractConnector:main: Started ServerConnector@7b205dbd{HTTP/1.1, (http/1.1)}{0.0.0.0:8080}
2020-09-28 13:51:47.887:INFO:oejs.Server:main: Started @1514ms
  

Невозможно получить экземпляр KeyManagerFactory для алгоритма [SunX509] от поставщика [Conscrypt], используя значение по умолчанию

Любая помощь приветствуется

Спасибо.

Комментарии:

1. Я использую эту версию Jetty: jetty-distribution-9.4.31.v20200723 и работаю в дистрибутиве ubuntu.20.04

Ответ №1:

Здесь не сообщается об ошибке, это обычные резервные операции для альтернативных поставщиков (concrypt в вашем случае).

Поставщик безопасности Concrypt не поддерживает SunX509 алгоритм KeyManagerFactory , поэтому он возвращается к реализации JVM по умолчанию.

Кроме того, не редактируйте файлы в своем jetty-home / jetty-distribution напрямую, это гораздо более серьезное ПРЕДУПРЕЖДЕНИЕ, используйте дистрибутив правильно и отделите свой jetty-home от jetty-base в соответствии с документацией, связанной в этом предупреждающем сообщении. Этот древний метод управления конфигурацией Jetty standalone был полностью удален в Jetty 10 и Jetty 11!