一个实际问题分析及解决之三:websphere中SSL配置及使用
来源:互联网 发布:如何查看端口带宽 h3c 编辑:程序博客网 时间:2024/05/29 16:49
SSL配置是websphere security中很重要的一部分,具体详细阅读下面内容。
http://www.ibm.com/developerworks/websphere/techjournal/0612_birk/0612_birk.html
这里重点分析两个问题:KeyStore和TrustStore的区别以及如何使用websphere的ssl配置。
一. KeyStore和TrustStore的区别
- TrustStore主要用于存放public certificate,即公钥。而公钥一般是被标准CA机构签发的,故IBM websphere称之为Signer Certiificate,故名思议被签过名的证书。公钥很常见,当你用浏览器打开一个https时得到的证书一般都是公钥。
- KeyStore主要用于存放personal certificate,即私钥。因为私钥一般是由服务商提前通过其他途径提供给你的,且一般该证书只是提供给你一个用户,用于识别用户身份,故IBM websphere称这为personal certificate,不能共享给别的用户。
- TrustStore中的证书用于信任服务器的证书,如果服务器的证书在TrustStore中那么会被信任。注意在Java中,如果服务器的证书并不在TrustStore中,但如果它的签名方是一个标准的CA机构那么Java也是会接受的。
- KeyStore中的证书用于“双向校验”(详细关于双向检验的解决请看上一篇)中的服务器检验客户的过程,即在握手过程中服务器会要求客户端提供证书,那么客户端就会从KeyStore中但找相应证书并发送给服务器检验。
- 注意,两者都是一个文件(websphere的web console中会显示keystore是哪个文件)。并且keystore里也可以存放signer certificate而truststore里也可以存放personal certificate,只是keystore里的signer certificate在握手过程中不会被检索,而truststore中的personal certificate在握手过程中也不会被用到。一种特例就是你把KeyStore和TrustStore指向同一个文件,那么该文件中的signer certificate和personal certificate在握手时都会被用到,当然用在不同的步骤。
二. websphere中如何使用ssl配置
- websphere的admin console中有一个专门的"ssl configuration"项目,用于配置ssl,你可以新建一个"ssl configuration"项并给它一个对你有意义的名字,在其中你可以指定KeyStore和TrustStore分别是什么,另外还可以在QoF中配置SSL协议(如TLSv1, SSLv2等,默认是TSL_SSL),可用的加密算法等。
Quality of Protection panel for SSL configurations
- 把你在上一步中添加的SSL配置绑定到websphere的一个域上,如cell,node或app server上,注意绑定后按范围由大到小继承,那cell上的ssl配置会被继承到node上,除非node上自己配置了一个ssl configuration。
SSL configuration panel
- 在绑定ssl configuration时,注意一下Inbound和Outbound的区别。Inbound表示当前的websphere上的应用充当服务器,别的外部应用来连。而Outbound则表示当前websphere上的应用作为客户端去连接外部服务器。
Overview of the centrally-managed topology view
到此为止,SSL配置已经完全可以被websphere上的应用使用了。但是在使用时又会有两种情况,一种是websphere上的应用完全不管SSL握手的建立,调用一个Java API去要求websphere建立一个SSL连接,那么websphere就会找到Inbound或Outbound上的SSL配置,然后完成SSL握手后返回给websphere上的应用。在这种方式下,SSL连接的建立对应用来说是透明的,所有需要用到的证书库(包括keystore和truststore)都提前在ssl配置中设置好。
另一种方式则是由应用自己主导SSL连接的建立,通常的方式是调用Oracle Java制定的标准接口,SSLContext.getInstance(String)来完成。注意这种方式建立的SSL连接是绕过了websphere层而直接跟JVM交互,要求建立SSL连接。这种方式下,上面提到的在websphere中的SSL配置是不会被用到,所以需要自己指定KeyStore和TrustStore,而JDK也提供了接口,只要设置下面几个system property即可:
javax.net.KeyStore
javax.net.KeyStorePassword
javax.net.KeyStoreType
javax.net.TrustStore
javax.net.TrustStorePassword
javax.net.TrustStoreType
下图表示了这两种使用方法的区别。
0 1
- 一个实际问题分析及解决之三:websphere中SSL配置及使用
- 一个实际问题分析及解决之二:理解SSL协议
- 一个实际问题分析及解决之七:理解websphere的classloader
- 一个实际问题分析及解决之四:通过IBM的JDK建立SSL连接
- 一个实际问题分析及解决之九:什么是应用服务器
- 一个实际问题分析及解决之一:问题描述
- 一个实际问题分析及解决之五:两种方法的区别和选择
- 一个实际问题分析及解决之六:java keystore的操作
- 在html标签中使用自定义属性及解决的实际问题
- WebSphere MQ常用命令及配置
- WebSphere MQ常用命令及配置
- websphere 的SSL配置
- WebSphere配置SSL指南
- SVN 配置 之三 TortoiseSVN设置及使用
- Tomcat配置ssl及導入機構證書
- 配置IBM WebSphere MQ及注意事项
- apache,nginx及tomcat中配置SSL双向访问
- websphere中解决一个NoClassFoundException问题
- 一个实际问题分析及解决之一:问题描述
- 一个实际问题分析及解决之二:理解SSL协议
- CentOS 7的yum 安装mysql
- thinkphp集成系列之短信验证码、订单通知
- Android textAppearance的属性设置及TextView属性详解
- 一个实际问题分析及解决之三:websphere中SSL配置及使用
- 一个实际问题分析及解决之四:通过IBM的JDK建立SSL连接
- 一个实际问题分析及解决之五:两种方法的区别和选择
- 一个实际问题分析及解决之六:java keystore的操作
- 一个实际问题分析及解决之七:理解websphere的classloader
- 一个实际问题分析及解决之九:什么是应用服务器
- 留~言~版
- 关于家用宽带的几点不满与想法
- Android textAppearance的属性设置及TextView属性详解