在Java环境中配置SSL双向认证
在Java环境中配置Https双向认证,需要使用JDK自带的keytool工具,在命令行方式下,生成服务器证书申请文CSR,然后到CA签发服务器证书。
以下为在Tomcat和Weblogic中配置Https双向认证的步骤,环境为JDK1.5。
Tomcat下keystore密码与服务器密钥密码必须一致。
1.在Tomcat中配置HTTPS双向认证
在Tomcat5.0中配置Https双向认证的步骤如下:
1. 产生keystore文件:
keytool -genkey -alias tomcat -keyalg RSA -keystore keystore
java环境中配置SSL双向认证
此时可在当前目录下看到keystore文件。
申请服务器证书时,CN需要和网站的域名或者IP相同,否则IE7会认为该证书是为别的网站颁发的。
2. 生成服务器证书申请文件CSR:
keytool -certreq -keyalg RSA -alias tomcat -file certreq.csr -keystore keystore
java环境中配置SSL双向认证
此时可在当前目录下看到文件certreq.csr。
把certreq.csr文件内容和DN提交到CA管理员,即可申请到服务器证书。
DN为:CN=192.168.1.25, OU=research, O=cwca, L=YC, ST=NX, C=CN。
从CA获得的服务器证书为user.p7b,可从其中分别导出base64格式的根证和服务器证书:
NXCA.cer和client.cer。
3. 将根证书导入到keystore文件中:
keytool -import -trustcacerts -alias root -file NXCA.cer -keystore keystore
java环境中配置SSL双向认证
4. 将服务器证书导入到keystore文件中:
keytool -import -alias tomcat -file client.cer -keystore keystore
java环境中配置SSL双向认证
5. 进行Tomcat的配置:
把keystore文件拷入�TALINA_HOME%/conf目录下;
修改文件�TALINA_HOME%/conf/server.xml,知道 <Connector port="8443" 这一行,默认是注释掉的;去掉注释,然后增加两行:
keystoreFile="/conf/keystore" keystorePass="12345678"
truststoreFile="/conf/keystore" truststorePass="12345678"
修改结果如下图:
java环境中配置SSL双向认证
如果clientAuth="false",则服务器不需要客户端证书;
如果clientAuth="true",则客户端必须提供证书才能进行访问。
Tomcat6以后还需增加SSLEnabled="true"。
6. 启动Tomcat,输入https://192.168.1.25:8443/,即可访问应用;
Https默认端口为443,如果把监听端口改为443,则访问时就不需要加端口号了。
Tomcat5.0和Tomcat6.0的配置过程相同。
2.在Weblogic中配置HTTPS双向认证
在Weblogic8.1中配置Https双向认证的步骤如下:
1. 产生keystore文件:
keytool -genkey -alias weblogic -keyalg RSA -keystore weblogic.jks
java环境中配置SSL双向认证
此时可在当前目录下看到weblogic.jks文件。
2. 生成服务器证书申请文件CSR:
keytool -certreq -keyalg RSA -alias weblogic -file certreq.csr -keystore weblogic.jks
此时可在当前目录下看到文件certreq.csr。
java环境中配置SSL双向认证
把certreq.csr文件内容和DN提交到CA管理员,即可申请到服务器证书。
DN为:CN=192.168.1.25, OU=research, O=cwca, L=YC, ST=NX, C=CN。
从CA获得的服务器证书为user.p7b,可从其中分别导出base64格式的根证和服务器证书:
NXCA.cer和TESTSERVER.cer。
3. 导入根证书NXCA.cer到weblogic.jks中
keytool -import -alias testroot -trustcacerts -file NXCA.cer -keystore weblogic.jks
java环境中配置SSL双向认证
4. 导入服务器证书TESTSERVER.cer到weblogic.jks中
keytool -import -trustcacerts -alias weblogic -file TESTSERVER.cer -keystore weblogic.jks
java环境中配置SSL双向认证
5. 进入Weblogic管理页面进行配置:
A.进入Weblogic控制台:http://localhost:7001/console
B.选择:mydomain->Servers->myserver->General页面,找到属性:SSL Listen Port Enabled,
将其选中,如图:
java环境中配置SSL双向认证
在此可以修改SSL监听端口为443。
C.进入D:\bea\weblogic81目录,新建文件夹jks,把weblogic.jks拷入其中。
D.进入myserver->Keystores & SSL页面,做如下配置:
属性Keystore Configuration-> Identity中:
Custom Identity Keystore的值为:D:\bea\weblogic81\jks\weblogic.jks;
Type值为:jks;
输入两次Keystore密码;
属性Keystore Configuration-> Trust 的属性值和Identity相同;
属性SSL Configuration->Identity中:
Private Key Alias的值为Keystore的别名weblogic;
输入两次Keystore密码;
配置如下图:
java环境中配置SSL双向认证
java环境中配置SSL双向认证 java环境中配置SSL双向认证
配置完成,点击页面右下角的Apply即可。
E.以上为SSL单项认证,如果要配置SSL双向认证,在Keystores & SSL 页面中:
点击属性Advanced Options的show,如图:
java环境中配置SSL双向认证
找到属性Two Way Client Cert Behavior,
将其值改为:Client Certs Requested And Enforced,
如图:
java环境中配置SSL双向认证
点击页面右下角的Apply即可。
F.重启Weblogic服务,在IE地址栏中输入:https://192.168.1.25/ROOT/index.jsp,
即可访问应用。
Weblogic8.1以上版本与此配置方法相同。
3.在Websphere6.1中配置HTTPS双向认证
1. 产生keystore文件:
keytool -genkey -alias server -keyalg RSA -keystore keystore
java环境中配置SSL双向认证
2. 生成服务器证书申请文件CSR:
keytool -certreq -keyalg RSA -alias server -file certreq.csr -keystore keystore
java环境中配置SSL双向认证
3. 将根证书导入到keystore文件中:
keytool -import -trustcacerts -alias root -file NXCA.cer -keystore keystore
java环境中配置SSL双向认证
4. 将服务器证书导入到keystore文件中:
keytool -import -alias tomcat -file client.cer -keystore keystore
java环境中配置SSL双向认证
5. Webphere6.1双向认证设置,打开Webphere6.1控制台,点击左侧窗口安全性,
点开后里边有ssl证书和密钥管理选项点击它。
java环境中配置SSL双向认证
然后点击管理端点安全配置,点击 java环境中配置SSL双向认证
java环境中配置SSL双向认证
java环境中配置SSL双向认证
点击密钥库和证书,然后点击新建
java环境中配置SSL双向认证
新建密钥库和证书,
java环境中配置SSL双向认证
填入名称,keystore文件的路径,keystore文件的密码,类型选为jks
java环境中配置SSL双向认证
然后点ssl配置
java环境中配置SSL双向认证
新建一个ssl配置列表如下图所示:
java环境中配置SSL双向认证
选择你信任库密钥库名为设置的名称。本例为server,然后点获取证书别名,如下图所示:
java环境中配置SSL双向认证
然后确定,然后点击保护质量设置,将客户机认证选为必须,协议选为ssl,如下图所示:
java环境中配置SSL双向认证
然后保存为主配置。
然后设置入站点ssl配置,如下图所示:
java环境中配置SSL双向认证
设为我们新建的ssl主配置,本例为oa,然后点击更新证书别名列表,双向配置完成,
我们重新启动websphere服务,就必须用证书才能登陆。