为什么 WSO2 API 管理器在获取令牌时提示主机名验证失败?

Why WSO2 API Manager gives Hostname verification failed while getting the token?

我在 docker 容器上有一个 WSO2 身份服务器 运行,我的 API-Manager 配置为使用它作为密钥管理器。 API 经理也在 docker 上 运行。

当我尝试在 Postman 中获取令牌时,我将此 https://myhost.com:8243/token?grant_type=client_credentials 称为 base64 编码的“client_id:secret”,它给了我这个异常:

[2021-04-27 17:13:21,704] ERROR - TargetHandler I/O error: Host name verification failed for host : is.com javax.net.ssl.SSLException: Host name verification failed for host : is.com

另外 [apim.key_manager] 配置如下:

[apim.key_manager]
service_url = "https://is.com:9442/services/"
username = "$ref{super_admin.username}"
password = "$ref{super_admin.password}"
type = "WSO2-IS"

“is.com”是我的身份服务器容器的域。

我不知道为什么会这样,而且 apim 中禁用了 HostNameVerification。

我该如何解决?

谢谢。

我猜你没有在 Synapse 级别禁用主机名验证。这可以使用 deployment.toml

中的以下配置来完成
[transport.passthru_https.sender.parameters]
HostnameVerifier = "AllowAll"

推荐的方法是使用正确的主机名。为此,您可以使用 DNS 条目。