WebSphere Commerce 概述
WebSphere Commece 是 IBM 公司提供的一个电子商务解决方案,迄今已有十多年的历史,最新版本是 7.0。WebSphere Commerce 中内置了多种业务模型和商务流程,在对产品只需要进行一次安装、部署之后,客户就可以快速的向其消费者或者分销商等提供丰富的 B2C 和 B2B 业务,并支持包括在线销售、电话销售等多种销售渠道,而且通过其提供的开发工具(WebSphere Commerce Development Environment),客户能方便的开发、部署符合其自身需求的特定业务逻辑或者将其现有功能集成到 WebSphere Commerce 中,详细信息请参考 WebSphere Commerce 的信息中心。
WebSphere Commerce 中邮件服务器的使用
WebSphere Commerce 提供的在线购物平台中,需要通过邮件服务器来处理一些业务逻辑,比如产品的促销广播信息、消费者的密码重置、订单状态的改变等等,因为这些邮件信息通过互联网传播,如果不对其进行加密,可能会对其中的一些敏感信息(比如重置后的用户密码)在被监听之后进行暴露,而支持 SSL/TLS 加密的邮件服务器,可以有效防止此类事情的发生。Gmail 提供的邮件服务当前使用较为广泛,并支持 SSL/TLS 的加密方式,具有较好的代表性,下面就以 Gmail 为例,介绍 SSL/TLS 加密的邮件服务器在 WebSphere Commerce 中的使用。
Gmail 证书的获取
在使用 SSL/TSL 加密的邮件服务器的时候,客户端会和服务端建立 SSL 连接,而此之前,双方需要进行握手。因为 SSL 协议在握手过程中,服务端会向客户端发送一个证书,只有当该证书存在于客户端本地的信任区域时,二者之间才能做进一步的通信,所以为了在 WebSphere Commerce 中使用 Gmail,需要首先获取 Gmail 的安全证书,这个可以通过使用 OpenSSL来完成 。以 openSSL 的 Windows 平台实现 Win32OpenSSL为例,采用默认方式将其安装到 C:\OpenSSL-Win32 后,点击开始 → 运行,输入 cmd,通过 cd C:\OpenSSL-Win32\bin 进入到其 bin 目录。因为 Gmail 的 smtp 邮件服务器地址为 smtp.gmail.com,而且 SSL 端口是 465,所以使用如下的命令来进行连接:
清单 1 获取 Gmail 证书:
openssl s_client -connect smtp.gmail.com:465
然后可以得到如图 1 所示的返回信息:
图 1. Gmail 证书信息

然后将 -----BEGIN CERTIFICATE----- 和 -----END CERTIFICATE----- 之间的信息保存到一个文本文件当中,并将其命名为 gmail.cert,这样就获得了 Gmail 的安全证书。
证书的安装
首先将上文生成的 gmail.cert 拷贝到 WebSphere Commerce 的 WAS Profile 的 etc 目录当中,其路径为:<WAS_Profile>/etc。
其次,重新启动 WAS Server,并登陆 WAS 的 admin console,比如:http://localhost:port/ibm/console。
tips:WAS 的 admin conosle 的端口号可以从 <WAS_Profile>/config/cells/<WC_<Instance_Name>_Cell/nodes/<WC_<Instance_Name>_Node/serverindex.xml 中获得。
然后依次展开 Security > SSL certificate and key management > Key stores and certificates > NodeDefaultTrustStore > Signer certificates 来到如图 2 所示的页面:
图 2. 签发者证书

查看大图
接着点击 Add 按钮,并输入证书别名和上文拷贝的 Gmail 证书的文件名:
图 3. 添加 Gmail 证书

点击 OK 按钮之后,Gmail 的证书就添加好了,此时也能从 WAS console 里看到该证书的信息:
图 4. Gmail 信息

查看大图
最后,保存修改信息,并重启 WAS server。
邮件服务器的使用
在 WebSphere Commerce 中使用邮件服务器,需要首先登陆 adminconsole,然后点击 Configuration 菜单栏下的 transports,接着选择 E-mail 并点击 configure,在新页面中填入邮件服务器的参数,包括地址、用户名、密码、端口等,如图 5 所示,然后进行保存:
图 5. Gmail 在 WebSphere Commerce 中的设置

接着在 transports 页面对 E-mail 进行 Enable 之后,就可以在 WebSphere Commerce 中使用邮件服务器了。
Tips:
1、WebSphere Commerce 中使用 TLS 协议,需要将图 5 中的 Port 改为 587;
2、WebSphere Commerce 从 V7 开始支持 smtps 协议,为了使用 smtps,需要将图 5 中的协议改为 smtps;
3、非安全方式(SSL/TLS)连接虽然不推荐,但是 WebSphere Commerce 中也提供了支持,除了需要在图 5 中填入相应的信息外,同时只需要确保在 Message Type 的 E-mail 设定当中不填入用户名信息。换句话说,为了使用安全方式(SSL/TLS)连接,则必须填入用户名。
邮件服务配置的测试与分析
WebSphere Commerce 中使用到的 E-mail API 是 JavaMail,为了在使用过程中显示调试信息,可以在 WAS profile 的类搜索路径中(比如 <WAS_Profile>/installedApps/WC_<Instance_Name>_cell/WC_<Instance_Name>.ear/xml)添加名为 JCAEmailConnectionRequestInfo.properties 的文件,包含如下内容:
清单 2. Java Mail 调试设置
mail.debug=true mail.smtp.socketFactory.class=javax.net.SocketFactory
以 BroadcastMessage 为例,在以管理员身份登陆 adminconsole 后,依次点击 Configuration → Scheduler → New,新创建一个 BroadcastMessage 的任务,设定任务的参数信息(比如任务的优先级、收件人、邮件主题等,详情请参考 WebSphere Commerce信息中心)如图 6 所示:
图 6. BroadcastMessage 任务

提交任务之后,继续等待一段时间,就可以从 WAS 的 log 文件中看到邮件发送成功的信息了。
Tips:如果提示找不到 /BroadcastMessage.jsp 页面从而导致任务执行的失败,那么可以根据自己的需要手工创建 BroadcastMessage.jsp 文件,对于 WCDE,将其拷贝到 <WCDE_INSTALL_PATH>\workspace\Stores\WebContent 中;而对于 runtime,拷贝到 <WAS_Profile>/installedApps/WC_<Instance_Name>_cell/WC_<Instance_Name>.ear/Stores.war 下,然后重启 WAS Server 即可。
WebSphere Commerce 中使用的 E-mail 支持 SMTP、SMTPS、TLS 协议,三者在网络上传输的过程和信息有所不同,可以通过使用 Wireshark 进行抓包后分析,分别如图 7、8、9 所示。
图 7. 使用 SMTP 协议时的交互

查看大图
图 8. 使用 SMTPS 协议时的交互

查看大图
图 9. 使用 TLS 协议时的交互

查看大图
从图中可以看到,使用 SMTP 协议时,所有的交互信息,尤其是邮件的内容都是明文传输的;SMTPS 协议是在握手之后采用密文传输;TLS 协议是在客户端发送 STARTTLS 命令后进行握手,之后的数据也是密文传输的。协议的握手过程,请参阅相关资料。
总结
WebSphere Commerce 作为 IBM 公司提供的电子商务解决方案,提供了在线购物的功能,其中订单管理等业务需要使用邮件服务器,而支持 SMTPS 和 TLS 的邮件服务器的使用,对交互的数据进行了加密,有效保证了信息传输的安全性。
转自:http://www.ibm.com/developerworks/cn/opensource/os-cn-sslmailserver/index.html?ca=dat