当SSL终止后,WSDL绑定URL将协议更改为HTTP

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当SSL终止后,WSDL绑定URL将协议更改为HTTP相关的知识,希望对你有一定的参考价值。

我们有一个简单的jax-ws SOAP服务器,由Apache CXF 3.2.6支持,采用独立(自托管)模式,使用嵌入式Jetty。首先使用CXF的wsdl2java生成服务器wsdl-first。 WSDL是类路径上的文件,该物理WSDL文件在https://....元素的location属性中具有soapbind:address

启动时,服务器发布到http://0.0.0.0:8080。服务器还位于SSL终端后面,该终端路由https://external-name - > SSL终止 - > http://internal-name:8080,因此外部服务及其WSDL可在https://external-name获得。

问题是当通过https://external-name?wsdl从部署的服务器请求WSDL时,CXF将生成的文件中的location元素的soapbind:address属性更改为http://external-name(将协议从HTTPS更改为HTTP并保留其他所有内容),这会导致生成问题客户端代理,Soap UI等

最糟糕的是,我们的合作伙伴的SOA不能使用我们的服务,它只能从WSDL强制使用已发布的位置。

我们如何解决这个问题,除了删除SSL终止并让CXF自己处理SSL? (这很可怕,因为Java密钥库维护的噩梦并且必须在服务器实例中存储公司范围的证书+私钥)。

答案

您可以在配置中将所需地址设置为publishedEndpointUrl。见:http://cxf.apache.org/docs/jax-ws-configuration.html

以上是关于当SSL终止后,WSDL绑定URL将协议更改为HTTP的主要内容,如果未能解决你的问题,请参考以下文章

我可以将我所有的 http:// 链接更改为 // 吗?

将 Magento 1 url、http 更改为 https 错误混合内容

如何在 Apache Camel 中更改 SOAP Web 服务端点 URL 和 WSDL URL

Zend SOAP:将默认数组元素名称“item”更改为 WSDL 中复杂类型的类名称

将 ColdFusion 生成的 WSDL Web 服务从 RPC 编码更改为文档文字会有啥影响?

将 iframe URL 更改为另一个协议会重新加载页面,但不会在从计时器触发时重新加载