ApiClient HTTPS调用从错误的信任库中获取证书

时间:2018-12-05 14:29:16

标签: java ssl websphere-liberty truststore

我正在使用Swagger生成的客户端从Liberty上运行的Web应用程序内调用REST服务。连接使用SSL,但由于找不到证书而失败。

我打开调试开关,发现该调用访问JRE信任库,而不访问class Parent(object): #This is a Borg class __shared_state = {} def __init__(self): self.__dict__ = self.__shared_state self.valueA = 5 class Child(Parent): def __init__(self): Parent.__init__(self) self.valueB = 10 def Calculate(self): self.result = self.valueB + self.valueA print(self.result) class MainProgram(): def __init__(self): self.parent = Parent() self.child = Child() self.parent.valueA = 8 self.child.Calculate() foobar=MainProgram() 中的Liberty信任库。

更让我感到困惑的是,同一个Web应用程序调用了SAP Web服务(SOAP),它也需要SSL。这些工作正常。

为什么SOAP服务找不到证书,但是REST调用在错误的位置?

更新

这个问题似乎与之相关:HttpsUrlConnection using KeyStore instead of TrustStore with WebSphere Liberty Profile,但我无法解释为什么SOAP调用不使用Liberty信任库而使用REST。

更新

我现在怀疑swagger:https://github.com/swagger-api/swagger-codegen/issues/6413使用的OkHttp客户端。当前版本是2.7.5。将尝试升级到3.9.0。

0 个答案:

没有答案