扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
引言
本文提供有关如何为 WebSphere Commerce 配置安全套接字层(secure sockets layer,SSL)加速器的说明。 这通过将 SSL 处理卸载到单独的硬件,从而帮助改善 WebSphere Commerce 站点的性能。SSL 加速器还可以为您提供一个管理所有 SSL 证书的中心位置。除了配置步骤以外,本文还将描述 WebSphere Commerce 如何确保使用 SSL 来对需要安全性的请求进行加密。
|
什么是 SSL 加速器?
SSL 是允许对 HTTP 请求上的敏感数据加密的技术。握手、加密和解密过程由 Web 服务器处理。此过程会给 Web 服务器添加额外的工作负载。几家供应商提供了可改进 SSL 处理的硬件。这些硬件称为“SSL 加速器”或“SSL 终结器”(SSL Terminator)。SSL 加速器截获加密的通信并执行 SSL 处理(握手、加密和解密)。加速器与 Web 服务器之间的通信通常是以明文形式进行的。通过使用专用硬件来执行 SSL 处理,您可以在站点上获得改进的性能。
图 1 阐释了这个过程。
图 1. SSL 加速器
浏览器向 WebSphere Commerce 站点发出 HTTPS 请求。SSL 加速器截获该请求并对其进行解密。然后以明文形式 (HTTP) 将该请求转发到 WebSphere Commerce 服务器。当响应被返回时,SSL 加速器对响应加密,然后将其发送回浏览器。
|
WebSphere Commerce 如何处理 SSL
由于商业事务通常涉及安全信息(如信用卡号),因此 WebSphere Commerce 采用一个过程来确保通过 SSL 来发送那些信息部分。发送到 WebSphere Commerce 的请求要么是视图,要么是 URL。视图映射到 JSP 文件。视图用于向最终用户显示信息。URL 映射到控制器命令。控制器命令执行站点的业务逻辑。它们负责诸如向购物车添加商品或处理订单支付等操作。
WebSphere Commerce 附带了缺省视图和 URL。当您自定义 WebSphere Commerce 时,通常会添加新的视图和 URL(控制器命令)。在部署您的自定义配置时,应注册您的视图以便 WebSphere Commerce 运行时能够知道它。表 1 总结了注册视图的位置。
表 1. 不同 WebSphere Commerce 版本的 URL 和视图注册中心
WebSphere Commerce 版本 | 视图 | URL |
---|---|---|
5.x | 在表 VIEWREG 中注册 | 在表 URLREG 中注册。 |
6.0 | 在应该运行该视图的 Web 模块的 struts-config-*.xml 文件中注册。 | 在应该运行该视图的 Web 模块的 struts-config-*.xml 文件中注册。 |
有关如何在 WebSphere Commerce 中注册视图和 URL 的详细信息,请参见 WebSphere Commerce 信息中心的 Create a new view。
每个视图或 URL 都有一个属性,用于指定针对该视图或 URL 的 HTTP 请求应该是 HTTP 还是 HTTPS(使用 SSL 加密的 HTTP)。表 2 列出了 WebSphere Commerce 如何确保请求满足指定的 SSL 要求。
表 2. 无 SSL 加速器的 SSL 处理
浏览器操作 | WebSphere Commerce 操作 | |
---|---|---|
1. | 浏览器请求 http://host/webapp/wcs/stores/servlet/MyView | |
2. | 在视图和 URL 注册中心查找 MyView。 | |
3. | 确定该请求的模式是否应该为 HTTPS。在此示例中,开发人员声明了 MyView 应该为 HTTPS。 | |
4. | 将所需模式与实际模式进行比较 | |
5. | 如果所需模式为 HTTPS,但实际模式为 HTTP,则将浏览器重定向到 HTTPS。在此示例中,该模式为 HTTP,但是应该为 HTTPS。WebSphere Commerce 执行到 https://host/webapp/wcs/stores/servlet/MyView 的重定向。 | |
6. | 浏览器收到重定向命令并请求 https://host/webapp/wcs/stores/servlet/MyView。 | |
7. | 在视图和 URL 注册中心查找 MyView。 | |
8. | 确定该请求的模式是否应该为 HTTPS。在此示例中,开发人员声明了 MyView 应该为 HTTPS。 | |
9. | 将所需模式与实际模式进行比较。 | |
10. | 如果所需模式为 HTTPS 并且实际模式为 HTTPS,则 WebSphere Commerce 继续执行该请求。 | |
11. | WebSphere Commerce 调用与 MyView 视图关联的 JSP 文件。 | |
12. | 浏览器接收所运行的 JSP 文件的内容。 |
|
为 WebSphere Commerce 配置 SSL 加速器
当您将 SSL 加速器添加到环境中时,流发生了改变。SSL 加速器截获发送到 WebSphere Commerce Web 服务器的请求。如果原始请求使用 HTTPS 模式,则加速器在将请求转发到 WebSphere Commerce Web 服务器时将模式更改为 HTTP。基于上面列出的流,这导致了 WebSphere Commerce 服务器将浏览器重定向到 HTTPS/SSL。加速器又将该请求作为 HTTP 来转发,从而导致了无限循环。
为解决此问题,您可以告诉 WebSphere Commerce 应该将特定端口上的请求始终当作 HTTPS 来处理,即使 HTTP 请求中的模式可能不是 HTTPS。此配置是在 Web 模块的基础上进行的。要启用此配置,请执行下列步骤:
WC_userInstallDir/instances/instance_name/xml/instance_name.xml
。
<Module contextPath="/webapp/wcs/stores" fileServletEnabled="false" name="Stores" urlMappingPath="/servlet" webAlias="/wcsstore"> <InitParameters adapters="XML/HTTP, BrowserAdapter" contextSetName="Store" handleDoubleClick="true" /> </Module> |
InitParameters
元素: 属性 | 描述/值 |
---|---|
SSLAcceleratorOption |
将该值设置为“Enabled”,以指示对该 Web 模块使用 SSL 加速器。 |
inSSLPort |
这是用于针对该模块的安全请求的入站端口。WebSphere Commerce 假设此端口上的请求使用 HTTPS 模式,即使它们实际使用的是 HTTP 模式。 |
outSSLPort |
这是安全出站端口。它用于重定向。如果入站请求的模式不是 HTTPS 并且需要重定向到 HTTPS,则使用 HTTPS 模式对此端口执行重定向。 |
inNonSSLPort |
这是用于针对该模块的请求的入站端口。WebSphere Commerce 将假设此端口上的请求使用 HTTP 模式。 |
outNonSSLPort |
这是用于非安全请求的出站端口。 |
<Module contextPath="/webapp/wcs/stores" fileServletEnabled="false" name="Stores" urlMappingPath="/servlet" webAlias="/wcsstore"> <InitParameters adapters="XML/HTTP, BrowserAdapter" contextSetName="Store" handleDoubleClick="true" SSLAcceleratorOption="Enabled" inSSLPort="443" inNonSSLPort="80" outSSLPort="443" outNonSSLPort="80" /> </Module> |
cd WC_installDir/bin config_ant -DinstanceName=instance UpdateEAR |
SSLEnable SSLClientAuth 0 |
在做出这些更改以后,WebSphere Commerce 现在将按表 3 所述的方式来处理请求。
表 3. 使用 SSL 加速器的 SSL 处理
浏览器操作 | SSL 加速器 | WebSphere Commerce 操作 | |
---|---|---|---|
1. | 浏览器请求 http://host/webapp/wcs/stores/servlet/MyView。 | ||
2. | 将请求作为 http://host/webapp/wcs/stores/servlet/MyView 发送到 WebSphere Commerce。 | ||
3. | 在视图和 URL 注册中心查找 MyView。 | ||
4. | 确定该请求的模式是否应该为 HTTPS。在此示例中,开发人员声明了 MyView 应该为 HTTPS。 | ||
5. | 将所需模式与实际模式进行比较。 | ||
6. | 如果所需模式为 HTTPS,但实际模式为 HTTP,则将浏览器重定向到 HTTPS。在此示例中,该模式为 HTTP,但是应该为 HTTPS。WebSphere Commerce 对实例配置中指定的 outSSLPort 执行 HTTP 重定向。例如,https://host:443/webapp/wcs/stores/servlet/MyView。 | ||
7. | 浏览器收到重定向命令并请求 https://host/webapp/wcs/stores/servlet/MyView。 | ||
8. | 执行 SSL 处理。将请求作为 http://host:443/webapp/wcs/stores/servlet/MyView 发送到 WebSphere Commerce。 | ||
9. | 在视图和 URL 注册中心查找 MyView。 | ||
10. | 确定该请求的模式是否应该为 HTTPS。在此示例中,开发人员声明了 MyView 应该为 HTTPS。 | ||
11. | 将所需模式与实际模式进行比较。对于新的配置,端口 443 上的所有请求都假设为 HTTPS,尽管在此例中该模式为 HTTP。 | ||
12. | 如果所需模式为 HTTPS 并且假设的模式为 HTTPS,则 WebSphere Commerce 继续执行该请求。 | ||
13. | WebSphere Commerce 调用与视图 MyView 关联的 JSP 文件。 | ||
14. | 执行 SSL 处理。 | ||
15. | 浏览器接收所运行的 JSP 文件的内容。 |
|
结束语
本文介绍了使用 SSL 加速器如何能够改善 WebSphere Commerce 站点的性能。它说明了 WebSphere Commerce 如何确保对 HTTP 上的敏感数据加密,以及这如何与使用 SSL 加速器相关。最后,介绍了如何配置 WebSphere Commerce,以使用 SSL 加速器来利用 SSL 卸载功能。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者