在这篇文章中,我们将了解为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。
HTTP 侦听器配置:
在此示例中,“/hello”端点正在侦听端口 8081 并托管在 localhost(0.0.0.0) 上。
步骤1.2:在“src/main/resources”文件夹中创建一个“cert”文件夹。在这个“certs”文件夹中,我们将存储密钥库。
步骤1.3:导航到系统资源管理器中的“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:这设置密钥库的密码。整个密钥库均使用此密码进行加密。
执行上述命令后,我们需要回答一些问题来创建Keystore。请相应地回答。文章地址https://www.yii666.com/share/307.html
回答问题后,密钥库将自动在“certs”文件夹中创建。
步骤1.5:转到Anypoint Studio并刷新项目。“certs”文件夹将填充密钥库。
步骤 2:配置密钥库
步骤2.1: 转到 属性文件并添加“https.port”和“https.host”属性。在本教程中,我们使用 localhost 和端口 8082。
注意:对于本地部署/测试,可以使用任何端口。
步骤2.2:现在,我们需要为TLS创建配置。在“全局元素”窗口中搜索“TLS 上下文”并添加它。
现在,在 TLS 上下文中添加密钥库的详细信息并保存。文章来源地址https://www.yii666.com/share/307.html
步骤2.3:转到HTTP侦听器配置并将协议更改为“HTTPS”,并将主机和端口属性分别替换为 ${http.host}和${https.port}。
步骤2.4:转到HTTP侦听器配置中的“TLS”选项卡,在“TLS配置”中选择“全局引用”,然后在“全局引用”中选择我们在步骤2.2中创建的TLS配置。保存。网址:yii666.com
现在我们已经完成了所有配置。保存项目并运行它。
当项目部署到本地后,使用 Postman 通过 HTTPS 协议调用端点。确保在 Postman 中禁用 SSL 证书验证以进行本地测试。
您应该能够得到 200 响应。
现在将 mule 应用程序部署到 CloudHub。
部署应用程序后,使用 HTTPS 协议调用端点,我们应该会收到成功的响应。
现在,即使启用了 SSL 证书验证,我们也可以从 Postman 调用部署在 CloudHub 中的此端点。
通过这种方式,我们可以使用单向 SSL 在 mule 应用程序中配置 HTTPS 端点。我希望本教程对您有所帮助。
评论(0)