如何使用单向 SSL 为 Mule 应用程序配置 HTTPS 端点

在这篇文章中,我们将了解为Mule应用程序使用单向 SSL配置 HTTPS 端点的过程中涉及的步骤。在当今的数字世界中,保护客户端和服务器之间的通信至关重要,使用 HTTPS over HTTP 可确保安全的数据传输。

在开始之前,我们先了解一下 CloudHub 负载均衡器是如何工作的。

当我们将应用程序部署到 CloudHub 的共享负载均衡器时,该应用程序会在主机 0.0.0.0 和端口 8081 上侦听 HTTP 连接,并在端口 8082 上侦听 HTTPS 连接。

对于骡子工人,分配以下端口:

  • http.port 设置为 8081

  • https.port 设置为 8082

为了使 CloudHub 在部署时动态分配正确的端口,必须使用保留属性 ${http.port}(用于 HTTP 连接)和 ${https.port}(用于 HTTPS 连接)来引用应用程序中的端口。

如果使用 http.port 或 https.port 引用端口,则任何自定义端口都可以用于本地测试,因为 CloudHub 将根据部署时使用的属性自动分配 8081 或 8082。 

为了使负载均衡器将 HTTPS 流量定向到应用程序,需要使用证书和公私密钥对设置 HTTP 侦听器。请务必注意,应用程序中配置的证书未经 CloudHub 负载均衡器验证。因此,可以使用任何自签名证书,无论它是为哪个主机生成的。

设置 HTTPS 端点

第 1 步:创建密钥库

步骤1.1: 创建或打开需要配置HTTPS端点的项目。在本教程中,我采用了一个配置了 HTTP 端点的项目,我们将其更改为 HTTPS。

创建或打开需要配置HTTPS端点的项目

HTTP 侦听器配置:

HTTP 侦听器配置

在此示例中,“/hello”端点正在侦听端口 8081 并托管在 localhost(0.0.0.0) 上。

侦听端口 8081 并托管在 localhost(0.0.0.0) 上

步骤1.2:在“src/main/resources”文件夹中创建一个“cert”文件夹。在这个“certs”文件夹中,我们将存储密钥库。文章来源地址:https://www.yii666.com/share/307.html

存储密钥库

步骤1.3:导航到系统资源管理器中的“certs”文件夹,然后打开命令提示符。

导航到系统资源管理器中的“certs”文件夹,然后打开命令提示符

步骤1.4:执行以下命令创建Keystore。

keytool -genkeypair -keyalg <algorithm> -alias <alias> -keystore <keystoreName> -storetype <storeType> -keypass <keyPassword> -storepass <storePassword>

注意:请务必替换上述命令中的占位符。

本教程中使用的上述命令示例:

keytool -genkeypair -keyalg RSA -alias mule-server -keystore demo-project.p12 -storetype pkcs12 -keypass mule1234 -storepass mule1234

上面的命令是一个Java“ keytool”命令,用于生成新的密钥对并将其存储在文件中。Java KeyStore 是一个存储库,可以安全地存储加密密钥及其相应的证书。 

我们来理解一下上面的命令及其参数:

  • keytool:这是Java开发工具包(JDK)附带的Java密钥和证书管理工具。

  • genkeypair:该参数表示keytool生成新的公钥和私钥。

  • keylag RSA:该参数指定用于生成密钥对的算法。在本例中,我们使用了 RSA 算法。

  • alias mule-server:私钥和证书一起存储在Keystore中。别名是一个唯一的名称,可用于引用密钥库中的该密钥对。 

  • keystore demo-project.p12:指定将存储生成的密钥对的密钥库的名称。在这种情况下,密钥库文件将被命名为“demo-project.p12”。

  • storetype pkcs12:该参数设置密钥库的类型。在本例中,它是“pkcs12”。

  • keypass mule1234:这设置私钥的密码。

  • storepass mule1234:这设置密钥库的密码。整个密钥库均使用此密码进行加密。



HTTPS,传输层安全协议,HTTPS 端点,Mule 应用程序配置,客户端和服务器之间的通信,CloudHub 负载均衡器

执行上述命令后,我们需要回答一些问题来创建Keystore。请相应地回答。

HTTPS,传输层安全协议,HTTPS 端点,Mule 应用程序配置,客户端和服务器之间的通信,CloudHub 负载均衡器

回答问题后,密钥库将自动在“certs”文件夹中创建。文章地址https://www.yii666.com/share/307.html

HTTPS,传输层安全协议,HTTPS 端点,Mule 应用程序配置,客户端和服务器之间的通信,CloudHub 负载均衡器网址:yii666.com<

步骤1.5:转到Anypoint Studio并刷新项目。“certs”文件夹将填充密钥库。

HTTPS,传输层安全协议,HTTPS 端点,Mule 应用程序配置,客户端和服务器之间的通信,CloudHub 负载均衡器

步骤 2:配置密钥库

步骤2.1: 转到 属性文件并添加“https.port”和“https.host”属性。在本教程中,我们使用 localhost 和端口 8082。

注意:对于本地部署/测试,可以使用任何端口。

HTTPS,传输层安全协议,HTTPS 端点,Mule 应用程序配置,客户端和服务器之间的通信,CloudHub 负载均衡器

步骤2.2:现在,我们需要为TLS创建配置。在“全局元素”窗口中搜索“TLS 上下文”并添加它。 

TLS创建配置网址:yii666.com

现在,在 TLS 上下文中添加密钥库的详细信息并保存。

在 TLS 上下文中添加密钥库的详细信息并保存

步骤2.3:转到HTTP侦听器配置并将协议更改为“HTTPS”,并将主机和端口属性分别替换为 ${http.host}${https.port}

将主机和端口属性分别替换为 ${http.host}和${https.port}

步骤2.4:转到HTTP侦听器配置中的“TLS”选项卡,在“TLS配置”中选择“全局引用”,然后在“全局引用”中选择我们在步骤2.2中创建的TLS配置。保存。

“全局引用”中选择我们在步骤2.2中创建的TLS配置

现在我们已经完成了所有配置。保存项目并运行它。

当项目部署到本地后,使用 Postman 通过 HTTPS 协议调用端点。确保在 Postman 中禁用 SSL 证书验证以进行本地测试。

使用 Postman 通过 HTTPS 协议调用端点

您应该能够得到 200 响应。

现在将 mule 应用程序部署到 CloudHub。

将 mule 应用程序部署到 CloudHub。

部署应用程序后,使用 HTTPS 协议调用端点,我们应该会收到成功的响应。文章来源地址https://www.yii666.com/share/307.html

成功的响应

现在,即使启用了 SSL 证书验证,我们也可以从 Postman 调用部署在 CloudHub 中的此端点。

使用单向 SSL 在 mule 应用程序中配置 HTTPS 端点

通过这种方式,我们可以使用单向 SSL 在 mule 应用程序中配置 HTTPS 端点。我希望本教程对您有所帮助。

其他相关文章
    领支付宝红包赞助服务器费用
    如何防止 PHP 中的 SQL 注入?
    微信公众号:小猪波罗蜜
    关注公众号,回复999,可联系站长解答疑问哦。每天分享更多有趣的事儿,有趣有料!
    99人已关注

    觉得文章有用就打赏一下文章作者

    支付宝扫一扫打赏

    微信图片_20190322181744_03.jpg

    微信扫一扫打赏

    请作者喝杯咖啡吧~

    支付宝扫一扫领取红包,优惠每天领

    二维码1

    zhifubaohongbao.png

    二维码2

    zhifubaohongbao2.png