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 中点击我了解风险 -> 添加例外...
我在 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 中点击我了解风险 -> 添加例外...