我已经能够获得一个主要在Quarkus下工作的现有应用程序。原始应用程序使用Undertow和RESTEasy,所有端点都使用相互TLS。直接使用Undertow,使mTLS工作相对简单。但是,对于Quarkus而言,这样做并不是很明显。
我对Quarkus所做的事情很感兴趣,但是对于诸如mTLS之类的情况以及可能的其他情况,它似乎缺乏对某些内部组件的低级访问。这种类型的配置今天是否可行,是否已经计划好,或者这种用例不是Quarkus章程的一部分?我的一部分感觉就像创建一个自定义的Undertow扩展程序,但是简单地扩展现有扩展程序会容易得多。任何指针,不胜感激。
答案 0 :(得分:0)
我也正试图弄清楚这一点,尽管在任何Quarkus指南中都没有提到,但配置选项仍然存在:
答案 1 :(得分:0)
我使用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=...
上找到所有内容