【发布时间】:2021-09-13 09:48:33
【问题描述】:
我已按照本教程 https://apim.docs.wso2.com/en/latest/administer/key-managers/configure-keycloak-connector/ 将 Keycloak 作为密钥管理器与 WSO2 API Manager 4.0.0 集成,并且一切都按描述完成,但是当我尝试获取 client_credentials access_token 时,WSO2 http 客户端出现错误 - Keycloak 通信,查看它与feign有关的痕迹。错误是这样的:
Caused by: feign.RetryableException: Hostname localhost not verified:
certificate: sha256/7mHCBc7ms9yqA/gz+nIRA9cUTRqrEgK3j9eX9fmpDZ0=
DN: CN=localhost
subjectAltNames: [] executing POST https://localhost:8443/auth/realms/master/clients-registrations/openid-connect
正如错误跟踪中所描述的,这是一个主机名验证,因为主机名是 localhost。为了绕过这个,我将主机名验证设置为禁用,但它仍在发生。我不知道如何跳过此验证。这些是我的配置文件 sn-ps:
deployment.toml
[transport.passthru_https]
sender.hostname_verifier = "AllowAll"
[transport.passthru_https.sender.parameters]
HostnameVerifier = "AllowAll"
[transport.passthru_http]
sender.hostname_verifier = "AllowAll"
api-manager.bat
set CMD_LINE_ARGS=%CMD_LINE_ARGS% -Djava.endorsed.dirs=%JAVA_ENDORSED% -Dorg.opensaml.httpclient.https.disableHostnameVerification=true -Dhttpclient.hostnameVerifier="AllowAll"
此外,此 localhost 证书在 WSO2 安装中导入到 client-truststore.jks 中。
知道如何跳过此主机名验证吗?
【问题讨论】:
-
您是否尝试按照上述文档中的说明为密钥库生成自签名证书?或者您使用的是 Keycloak 生成的默认证书?
-
我在独立文件夹内的 keystore application.keystore 中使用由 keycloak 生成的默认证书。在指南中说您可以使用该证书。这是我在 WSO2 client-truststore.jks 中导入的一个
标签: wso2 keycloak wso2is wso2-am