1.2. 引用 TLS 配置


要使用 quarkus.tls.<name > configured 所述引用您创建的 名为 配置示例 ,如 使用 TLS registry 中所述,使用 tls-configuration-name 属性,如下例所示:

核心 HTTP 服务器配置示例:

# Reference the named configuration
quarkus.http.tls-configuration-name=MY_TLS_CONFIGURATION

gRPC 客户端配置示例:

quarkus.grpc.clients.hello.tls-configuration-name=MY_TLS_CONFIGURATION

SmallRye GraphQL 客户端配置示例:

quarkus.smallrye-graphql-client.my-client.tls-configuration-name=MY_TLS_CONFIGURATION

注意

将 Typesafe GraphQL 客户端与证书重新加载机制搭配使用时,如 Reloading certificates 部分所述,务必要覆盖 bean 的范围到 RequestScoped 或比应用程序更短的另一个类似范围。这是因为,在默认情况下,Typesafe 客户端是一个应用程序范围内的 bean。缩短范围可确保证书重新加载后创建的 bean 的新实例将使用最新的证书进行配置。动态客户端有 @Dependent 范围,将它们注入具有适当范围的组件。

1.2.1. 引用 SunJSSE 的默认信任存储

JDK 发行版通常包含 $JAVA_HOME/lib/security/cacerts 文件中的信任存储。此信任存储用作 SunJSSE 的默认信任存储,这是 Java 安全套接字扩展(JSSE)的默认实现。SunJSSE 提供的 SSL/TLS 功能由各种 Java 运行时组件(如 javax.net.ssl.HttpsURLConnection 等)利用。

虽然 Quarkus 扩展通常不遵循 SunJSSE 的默认信任存储,但在某些情况下仍然实际使用它。这适用于从旧技术迁移,或在与操作系统(OS)同步的 Linux 发行版上运行。

为了简化 SunJSSE 信任存储的使用,Quarkus TLS Registry 在名称 javax.net.ssl 下提供 TLS 配置,它模拟 SunJSSE 的默认行为:

  • 如果定义了 javax.net.ssl.trustStore 系统属性,则其值将被视为信任存储。
  • 否则,路径 $JAVA_HOME/lib/security/jssecacerts$JAVA_HOME/lib/security/cacerts 被检查,第一个现有文件用作信任存储。
  • 如果没有满足任何条件,则会抛出 IllegalStateException

打开 truststore 的密码取自 javax.net.ssl.trustStorePassword 系统属性。如果没有设置此属性,则使用默认密码 changeit

javax.net.ssl 配置可用作各种 storageclass tls-configuration-name 属性的值,如下所示:

gRPC 客户端配置示例:

quarkus.grpc.clients.hello.tls-configuration-name=javax.net.ssl

警告

javax.net.ssl TLS 配置既不能自定义,也不能被覆盖。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.