java - 与 Quarkus 的双向 TLS
问题描述
我已经能够得到一个主要在 Quarkus 下工作的现有应用程序。原始应用程序使用 Undertow 和 RESTEasy,所有端点都使用双向 TLS。直接使用 Undertow,让 mTLS 工作相对简单。但同样的做法是 Quarkus 并不那么明显。
我对 Quarkus 正在做的事情很感兴趣,但对于 mTLS 和可能的其他场景等情况,它似乎缺乏对某些内部的较低级别的访问权限。这种类型的配置今天是否可行,是否已计划,或者这种类型的用例不是 Quarkus 章程的一部分?我的一部分感觉就像创建一个自定义的 Undertow 扩展,但是简单地扩展现有的扩展会简单得多。非常感谢任何指针。
解决方案
我使用 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上找到所有内容
推荐阅读
- elasticsearch - 如何从 AWS Elastic 搜索服务中删除索引?
- aws-amplify - 在哪里使用 AWS Amplify/AppSync 编写业务逻辑
- python - Mailchimp 嵌入式表单集成到 Django 应用程序错误
- reactjs - TypeError: Object(...) is not a function React with Redux
- reverse-proxy - 使用 Traefik,如何根据请求的主机重写路径?
- python - 创建虚拟环境后无法运行程序
- python - 如何通过 Gabor 过滤器对人的衣服进行分类?
- python - Python进程运行时防止Linux休眠
- r - 基于密度函数的ggplot geom_line颜色
- android - Dagger2 绑定错误