Mule HTTPS Listener不会响应

时间:2015-05-01 02:19:43

标签: ssl mule keystore

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

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

我将JRE放在anypoint目录中,也尝试使用Program Files JRE。

这是我第一次做SSL的事情,所以也许我错过了一些东西,但这里有:

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

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

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

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

我还尝试使用FirstName LastName输入我的服务器的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扩展程序)或浏览器来呼叫我的听众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作为主机。添加信任商店等。没有做到这一点。我想我只是遗漏了一些非常小而简单的东西。

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

感谢您的时间

1 个答案:

答案 0 :(得分:1)

你正在做的一切正确。只需先从浏览器中单击链接https://localhost:8080/,然后将未签名的证书添加到本地计算机上,一切正常。您可以使用Postman或DHC来访问您的服务。

在Chrome中

点击高级 - &gt;前往localhost(不安全)) 在Firefox中点击我了解风险 - &gt;添加例外......