Quarkus HTTPS Restful服务

时间:2019-04-09 08:34:01

标签: quarkus

是否有使用quarkus.io构建和配置TLS安全的RESTful服务的示例/教程?

不幸的是,我在quarkus文档中找不到一个,在这里找不到。

2 个答案:

答案 0 :(得分: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或在GitHub上发布问题/ PR。

答案 1 :(得分:2)

谢谢先生。 Guillaume Smet,我找到了解决方案。这是“使用Quarkus和SSL指南,在5分钟内从零到问候”。这是由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

创建包含自签名证书的密钥库(回答所有问题并仅指定密码“ password”):

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

构建项目:

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格式的证书+密钥文件或密钥库。