适用于基准评测的错误消息和补救措施
本文档描述了运行 Gatling Keycloak 基准评测时常见的错误消息及其补救措施。
基准评测失败,并显示消息 SSLHandshakeException
- 背景
-
当在 Keycloak 前端使用 TLS 反向代理时,出现此错误消息(参见 issue keycloak/keycloak-benchmark#191)。
- 原因
-
在特定设置中,反向代理在主机名
localhost
上运行。 仅当主机名包含点时,Java 才会发送服务器名称指示 (SNI),请参阅 Gamlor 的博客文章 “Missing SNI with Java’s HTTPS client”,反向代理依赖于该 SNI。进一步分析
-
openssl s_client -connect localhost:443
已连接,然后立即断开连接,因为未发送 SNI。 -
openssl s_client -connect localhost:8443 -servername localhost
已按预期连接,因为 SNI 与反向代理命令行中的主机名匹配。
-
- 补救措施
-
-
不要使用
localhost
,而是使用localhost.localdomain
作为负载测试的目标以及 TLS 反向代理中配置的主机。 -
或者,在
hosts
文件中使用映射到 IP 地址127.0.0.1
的自定义主机名,并为丢失测试和 TLS 反向代理配置此主机名。
-