【问题标题】:SSL Certificate configuration for WSO2 API 3.2WSO2 API 3.2 的 SSL 证书配置
【发布时间】:2020-11-19 22:44:36
【问题描述】:

我目前正在尝试配置我们的 WSO2 API Manager 3.2 以使用我们的 SSL 证书。 我遵循了文档“创建新密钥库”和“在 API Manager 中配置密钥库”。

我已经更新了 deployment.toml 文件:

[server]<br>
hostname = "myserver001.internal.net"
....

[keystore.tls]
file_name =  "myKeystore.jks"
type =  "JKS"
password =  "secretpassword"
alias =  "myserver001.internal.net"
key_password =  "secretpassword"

[keystore.primary]
file_name =  "wso2carbon.jks"
type =  "JKS"
password =  "wso2carbon"
alias =  "wso2carbon"
key_password =  "wso2carbon"

服务器名称设置为 myserver001。
域名myserver001.internal.net在host文件中设置。

重启 WSO2 APIM 服务器后抛出异常消息:

SSLException:证书中的主机名不匹配:

  <localhost> != <myserver001.internal.net> OR <myserver001.internal.net>

有谁知道我还需要更改哪些内容、解决此错误或在哪里可以找到其他文档?

感谢任何帮助

【问题讨论】:

  • 这是由于主机名验证而发生的。您可以将 localhost 值更改为 myserver001.internal.net。然后将指向 myserver001.internal.net 的 /etc/host 条目指向 localhost。你能分享完整的错误信息吗?
  • [2020-10-22 08:41:44,564] 警告 - SubscriptionDataLoaderImpl 无法从远程端点检索 /subscriptions:证书中的主机名不匹配: != 。 15 秒后重试。 localhost 值设置为 myserver001 并设置主机文件中的条目。 [服务器] 主机名 = "myserver001.internal.net"
  • 您对此有什么解决方案吗?我正在使用 3.6 版本的 WSO2(从 2.6 移动)并得到相同的错误。
  • 不,目前没有解决方案。

标签: wso2-am


【解决方案1】:

看起来这是由于缺少 TM/Event hub 配置的service_url。那么您可以添加/更新以下配置吗?

[apim.throttling]
...
service_url = "https://myserver001.internal.net:9443/services/"

【讨论】:

  • 感谢您提供此提示,但此错误消息适用于 /apis、/subscriptions、/api-policies、/application-key-mappings、/application-policies、/subscription-policies 和其他上下文.总是相同的错误消息:证书中的主机名不匹配: !=
    有什么想法吗?
  • 您的证书是否有正确的 CN?例如:myserver001.internal.net
  • 是的,该证书用于我们的 preprod 环境。我只是想迁移到最新的 WSO2 APIM 版本。我们实际的 2.6 版本运行良好,但即使在那里正确配置 SSL 证书也是一场噩梦。
【解决方案2】:

我的情况完全一样:

  • 从 v2.6.0 迁移到 v3.2.0
  • 有效证书
  • SSLException:证书中的主机名不匹配

我尝试了很多东西,但经过大量研究,我会说有两种可能:

  • 这是一个错误
  • 这是一个文档问题,我们必须编辑更多内容才能使我们的证书正常工作

我相信您将 Dhttpclient.hostnameVerifier 更改为“AllowAll”以外的其他值。有关主机名验证,请参阅 the doc

这只是一种解决方法,可能并不那么安全,但您必须放回 Dhttpclient.hostnameVerifier 的默认值以避免此错误:

service wso2am-3.2.0 stop
nano /usr/lib/wso2/wso2am/3.2.0/bin/wso2server.sh

-Dhttpclient.hostnameVerifier=AllowAll \

service wso2am-3.2.0 start

【讨论】:

  • 感谢您的回答,但我们的环境中绝对不允许此设置。我必须调查更多.....
  • 我明白了。另一种可能的解决方案是从 v3.2.0 升级到 v3.2.0.2...但我猜你需要为此付费。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-30
  • 1970-01-01
  • 1970-01-01
  • 2013-08-16
  • 2020-04-24
相关资源
最近更新 更多