首页 > 解决方案 > 与 Quarkus 的双向 TLS

问题描述

我已经能够得到一个主要在 Quarkus 下工作的现有应用程序。原始应用程序使用 Undertow 和 RESTEasy,所有端点都使用双向 TLS。直接使用 Undertow,让 mTLS 工作相对简单。但同样的做法是 Quarkus 并不那么明显。

我对 Quarkus 正在做的事情很感兴趣,但对于 mTLS 和可能的其他场景等情况,它似乎缺乏对某些内部的较低级别的访问权限。这种类型的配置今天是否可行,是否已计划,或者这种类型的用例不是 Quarkus 章程的一部分?我的一部分感觉就像创建一个自定义的 Undertow 扩展,但是简单地扩展现有的扩展会简单得多。非常感谢任何指针。

标签: javatls1.2quarkus

解决方案


我使用 Quarkus 围绕 Mutual TLS 实现了一个快速入门示例。

在服务器端,要启用的属性是:

SSL 配置

quarkus.ssl.native=true
quarkus.http.ssl.certificate.key-store-file=...
quarkus.http.ssl.certificate.key-store-password=...

用于验证客户端证书的信任库配置

quarkus.http.ssl.certificate.trust-store-file=...
quarkus.http.ssl.certificate.trust-store-password=...

激活客户端配置

quarkus.http.ssl.client-auth=required

在客户端,由于 Quarkus 使用 MicroProfile Rest 规范,您需要定义以下属性:

服务器端点

org.acme.restclient.tck.GreetingService/mp-rest/url=...

信任库配置

org.acme.restclient.tck.GreetingService/mp-rest/trustStore=...
org.acme.restclient.tck.GreetingService/mp-rest/trustStorePassword=...

客户证书

org.acme.restclient.tck.GreetingService/mp-rest/keyStore=...
org.acme.restclient.tck.GreetingService/mp-rest/keyStorePassword=...

您可以在https://github.com/openlab-red/quarkus-mtls-quickstart上找到所有内容


推荐阅读