Mule HTTPS 侦听器不会响应

Mule HTTPS Listener won't respond

我在 Mule 中设置 HTTPS 时遇到问题。我在工作和家里都尝试过使用全新的 Anypoint Installs。我已经检查了每个 Whosebug 帖子每个教程每个博客帖子但没有做任何事情。我也试过 EE 和 CE 运行 次。我使用的是最新版本的 Mule,也尝试使用 HTTPS 入站端点,但结果相同。这是我项目中的一个重要部分,刚刚浪费了一天的时间试图解决这个问题,这让我发疯...

我一开始尝试使用自签名证书,但最终我想使用我们购买的 SSL 证书。

我将 JRE 放在任意点目录中,也尝试从 Program Files JRE。

这是我第一次做 SSL 方面的工作,所以可能我遗漏了一些东西,但这里是:

我首先在管理员模式下使用 CMD 进入我的 Jre bin 目录。

我 运行 HTTPS 传输参考文档中描述的命令:

keytool -genkey -alias mule -keyalg RSA -keystore keystore.jks

我正确输入了所有信息并保持两个密码相同以简化一切。密码是changeit.

我也试过输入我的服务器的 IP,而不是名字姓氏,我 运行正在使用 Anypoint。

获得keystore.jks后,我将其复制到我的src/main/resources文件夹中。

这是我在 Mule 中的简化流程。通常我会调用 SOAP web 服务或 REST web 服务,但我尽量保持最简单:

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:tls="http://www.mulesoft.org/schema/mule/tls" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
    xmlns:spring="http://www.springframework.org/schema/beans" version="EE-3.6.1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/tls http://www.mulesoft.org/schema/mule/tls/current/mule-tls.xsd">
    <http:listener-config name="HTTP_Listener_Configuration" protocol="HTTPS" host="localhost" port="8080" doc:name="HTTP Listener Configuration">
        <tls:context>
            <tls:key-store path="keystore.jks" password="changeit" keyPassword="changeit"/>
        </tls:context>
    </http:listener-config>
    <flow name="omgHttpsPlzWorkFlow">
        <http:listener config-ref="HTTP_Listener_Configuration" path="/" doc:name="HTTP"/>
        <set-payload value="#['Hello']" doc:name="Set Payload"/>
    </flow>
</mule>

然后我使用 DHC 或 Postman(Google Chrome Extensions)或浏览器直接调用我的监听器 https://localhost:8080/

我总是收到 500 或没有回应。在 Chrome 我得到

您的连接不是私人连接

Attackers might be trying to steal your information from localhost (for example, passwords, messages, or credit cards). NET::ERR_CERT_AUTHORITY_INVALID

我尝试添加记录器,但控制台中没有显示任何内容。

我认为问题可能出在工作中的端口或代理上,但现在我在家尝试,结果相同。

我试过将端口设置为 443,将我的 ip 作为主机。添加信任库等。什么也没做。我想我只是缺少一些非常小而简单的东西。

我希望有人能帮助我,因为这是我项目的最后一步,如果它不起作用,我将无法部署它,因为它包含我想要保护的敏感信息。

感谢您的宝贵时间

你做的一切都正确。只需首先从浏览器中单击 link https://localhost:8080/,以便将未签名的证书添加到本地计算机,一切都会正常进行。之后您可以使用 Postman 或 DHC 访问您的服务。

在 Chrome 点击高级 -> 进入本地主机(不安全)) 在 Firefox 中点击我了解风险 -> 添加例外...