Quarkus HTTPS спокойный сервис

Есть ли какой-либо пример / учебное пособие по созданию и настройке службы безопасности с защитой TLS с использованием quarkus.io?

К сожалению, я не могу найти ни в документации по quarkus, ни здесь.


person S. Kadakov    schedule 09.04.2019    source источник


Ответы (2)


Это действительно поддерживается нашим расширением Undertow, но, к сожалению, не задокументировано.

Вы можете определять такие вещи, как следующее:

quarkus.http.ssl.certificate.file=...
quarkus.http.ssl.certificate.key-file=...
...

в вашем application.properties.

Точка входа конфигурации - ServerSslConfig (см. https://github.com/quarkusio/quarkus/blob/master/core/runtime/src/main/java/io/quarkus/runtime/configuration/ssl/ServerSslConfig.java#L41). Затем вы добавляете вложенные свойства с точками и преобразуете верблюжий регистр в тире.

Если вы хотите создать собственный исполняемый файл, есть большая вероятность, что вам также придется добавить quarkus.ssl.native=true.

Если у вас есть отзывы или вы хотите внести свой вклад в это руководство, не стесняйтесь присоединяться к нам на Zulip или к открытым вопросам / PR на GitHub.

person Guillaume Smet    schedule 09.04.2019
comment
Я только что открыл github.com/quarkusio/quarkus/issues/1947, чтобы отслеживать дальнейший прогресс. на этом. - person Guillaume Smet; 09.04.2019
comment
Отлично! Спасибо за ответ, я попробую. - person S. Kadakov; 10.04.2019
comment
Да, работает, спасибо. Но у вас есть жестко запрограммированный пароль для хранилища ключей на ServerSslConfig.java:158. - person S. Kadakov; 11.04.2019
comment
Проблема открыта: github.com/quarkusio/quarkus/issues/2021 Скажите, пожалуйста как поделиться своими выводами? - person S. Kadakov; 12.04.2019
comment
Думаю, перед заключением я бы добавил здесь конкретный абзац: github.com/quarkusio/quarkus/blob/master/docs/src/main/asciidoc/. На данный момент это, наверное, лучшее место. Это asciidoc, у вас есть много примеров того, как отформатировать его в файле. Не стесняйтесь открывать PR и спрашивать совета, когда у вас будет черновик, я здесь, чтобы помочь! - person Guillaume Smet; 12.04.2019
comment
Я просто разместил здесь краткое руководство в качестве ответа. Не стесняйтесь копировать его куда угодно. - person S. Kadakov; 12.04.2019

Спасибо, мистер. Гийом Смет, я нашел решение. Здесь от нуля до приветствия за 5 минут с помощью Quarkus и руководства по SSL. Это делается подключаемым модулем quarkus undertow. Также вам понадобится текстовый редактор, установлен jdk 1.8+ и maven.

Фрист, создай проект.

mkdir restls
cd restls
mvn io.quarkus:quarkus-maven-plugin:create -DprojectGroupId=org.acme -DprojectArtifactId=restls -DclassName="org.acme.HelloResource" -Dpath="/hello" -Dextensions="undertow"

Откройте файл конфигурации вашего приложения src/main/resources/application.properties в любом редакторе и добавьте строки:

quarkus.http.port=80
quarkus.http.ssl-port=443
quarkus.http.ssl.certificate.key-store-file=keystore.jks

Создайте хранилище ключей, содержащее самоподписанный сертификат (ответьте на все вопросы и укажите пароль, а именно пароль):

keytool -genkey -keyalg RSA -alias selfsigned -keystore keystore.jks -storepass password -validity 365 -keysize 2048

Файл keystore.jks должен находиться в папке src/main/resources/.

Постройте проект:

mvnw clean package quarkus:build

А теперь попробуйте:

java -jar target/restls-1.0-SNAPSHOT-runner.jar

Перейдите по адресу https: // localhost / hello и разрешите браузеру доверять сертификату. Это все.

Вы можете переопределить параметры во время вызова следующим образом:

java -Dquarkus.http.ssl.certificate.key-store-file=/path-to-keystore/keystore-name.jks -jar target/restls-1.0-SNAPSHOT-runner.jar

Наконец, вот список возможных вариантов:

quarkus.http.ssl.certificate.file -- The file path to a server certificate or certificate chain in PEM format.

quarkus.http.ssl.certificate.key-file -- The file path to the corresponding certificate private key file in PEM format.

quarkus.http.ssl.certificate.key-store-file -- An optional key store which holds the certificate information instead of specifying separate files.

quarkus.http.ssl.certificate.key-store-file-type -- An optional parameter to specify type of the key store file. If not given, the type is automatically detected based on the file name.

Вы можете указать либо файлы сертификата + ключей в формате PEM, либо хранилище ключей.

person S. Kadakov    schedule 12.04.2019
comment
Спасибо за это. В Quarkus 0.18.0 мне пришлось указать файлы сертификата + ключа. По какой-то причине сертификат не обслуживался, когда использовалось хранилище ключей, что приводило к ошибкам рукопожатия. - person Ali Cheaito; 28.06.2019