科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道结合使用 SSL 加速器和 WebSphere Commerce

结合使用 SSL 加速器和 WebSphere Commerce

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

专业的硬件和软件已成功开发出来,可用于卸载该处理以提高 WebSphere Commerce 站点的性能。本文将描述如何为 WebSphere Commerce 配置 SSL 加速器 (SSL Accelerator)。

作者:ibm 来源:ibm 2007年10月7日

关键字: SSL 中间件 IBM WEBSPHERE

  • 评论
  • 分享微博
  • 分享邮件

引言

本文提供有关如何为 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 加速器
图 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 模块的基础上进行的。要启用此配置,请执行下列步骤:

  1. 在文本编辑器中打开 WC_userInstallDir/instances/instance_name/xml/instance_name.xml
  2. WebSphere Commerce 中的每个 Web 模块都有一个配置部分。下面是 Stores Web 模块的示例:
    <Module contextPath="/webapp/wcs/stores"
    		fileServletEnabled="false"
    		name="Stores"
    		urlMappingPath="/servlet"
    		webAlias="/wcsstore">
    	<InitParameters adapters="XML/HTTP, 
    BrowserAdapter"
    		contextSetName="Store"
    		handleDoubleClick="true" />
    </Module>
    

    定位到您要为其启用 SSL 加速器的 Web 模块的配置部分。
  3. 将下列属性添加到 InitParameters 元素:

    属性 描述/值
    SSLAcceleratorOption 将该值设置为“Enabled”,以指示对该 Web 模块使用 SSL 加速器。
    inSSLPort 这是用于针对该模块的安全请求的入站端口。WebSphere Commerce 假设此端口上的请求使用 HTTPS 模式,即使它们实际使用的是 HTTP 模式。
    outSSLPort 这是安全出站端口。它用于重定向。如果入站请求的模式不是 HTTPS 并且需要重定向到 HTTPS,则使用 HTTPS 模式对此端口执行重定向。
    inNonSSLPort 这是用于针对该模块的请求的入站端口。WebSphere Commerce 将假设此端口上的请求使用 HTTP 模式。
    outNonSSLPort 这是用于非安全请求的出站端口。


    如果您希望使用 WebSphere Commerce 为 Stores Web 模块配置的缺省端口,但是又希望使用 SSL 加速器,您可以按如下配置 WebSphere Commerce:
    <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>
    

  4. 将 WebSphere Commerce 配置文件重新部署到您的企业应用程序:
    cd WC_installDir/bin
    config_ant -DinstanceName=instance UpdateEAR
    

    注意:这会重新启动 WebSphere Commerce 应用程序,然后更改后的配置将会生效。
  5. 对那些不再需要 SSL 的端口禁用 SSL。为此,您必须编辑 Web 服务器配置。例如,如果您在对 Stores Web 模块使用 SSL 加速器,则对端口 443 禁用 SSL。对于 IBM HTTP Server,请从 <host name>:443 VirtualHost 中删除以下指令:
    SSLEnable
    SSLClientAuth 0

  6. WebSphere Application Server 有两种确定入站请求端口的方法。取决于浏览器和请求类型,这些值可能有所不同。
    • 使用 HTTP 请求中的 Host 标头 (hostHeader)。
    • 使用 Web 服务器上接收 HTTP 请求的端口 (webserverPort)。
    在测试过程中,我们发现 Internet Explorer® 并不总是正确地设置 Host 标头。在重定向中,它会丢弃端口号。Firefox® 则会在 Host 标头上设置正确的端口值。建议您将该值设置为“webserverPort”。这不是 缺省值。要设置此值,请执行下列步骤:
    1. 打开 WebSphere Application Server 管理控制台。
    2. 展开 Servers
    3. 单击 Web Servers
    4. 单击 webserver1(或与您的 WebSphere Commerce 应用程序关联的 Web 服务器)。
    5. 单击 Plug-in properties
    6. 单击 Request and Response
    7. 对于 Application server port preference 字段,选择 Webserver port
    8. 单击 OK
    9. 保存配置。
    10. 重新生成 Web 服务器插件配置文件。
  7. 重新启动您的 WebSphere Commerce 实例的 Web 服务器。

在做出这些更改以后,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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章