Quarkus的相互TLS

时间:2019-05-07 03:07:42

标签: java tls1.2 quarkus

我已经能够获得一个主要在Quarkus下工作的现有应用程序。原始应用程序使用Undertow和RESTEasy,所有端点都使用相互TLS。直接使用Undertow,使mTLS工作相对简单。但是,对于Quarkus而言,这样做并不是很明显。

我对Quarkus所做的事情很感兴趣,但是对于诸如mTLS之类的情况以及可能的其他情况,它似乎缺乏对某些内部组件的低级访问。这种类型的配置今天是否可行,是否已经计划好,或者这种用例不是Quarkus章程的一部分?我的一部分感觉就像创建一个自定义的Undertow扩展程序,但是简单地扩展现有扩展程序会容易得多。任何指针,不胜感激。

2 个答案:

答案 0 :(得分:0)

答案 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=...

您可以在https://github.com/openlab-red/quarkus-mtls-quickstart

上找到所有内容