Tomcat配置SSL的客户端认证

        证书保存在服务器端,用户通过浏览器访问时,需要将证书下载保存到本地,表示信任服务器站点。
        环境:tomcat-6.0.18、jdk1.6.0_18
        1. 生成密钥库
keytool -genkeypair -v -keyalg RSA -alias lcl -keystore e:\lcl.keystore

输入keystore密码:
再次输入新密码:
您的名字与姓氏是什么?
  [Unknown]:  LCL
您的组织单位名称是什么?
  [Unknown]:  CR
您的组织名称是什么?
  [Unknown]:  COM
您所在的城市或区域名称是什么?
  [Unknown]:  BJ
您所在的州或省份名称是什么?
  [Unknown]:  BJ
该单位的两字母国家代码是什么
  [Unknown]:  CN
CN=LCL, OU=CR, O=COM, L=BJ, ST=BJ, C=CN 正确吗?
  [否]:  Y

正在为以下对象生成 1,024 位 RSA 密钥对和自签名证书 (SHA1withRSA)(有效期为 90 天):
		 CN=LCL, OU=CR, O=COM, L=BJ, ST=BJ, C=CN
输入<lcl>的主密码
		(如果和 keystore 密码相同,按回车):
[正在存储 e:\lcl.keystore]

        2. 创建证书文件(我们这里为自我认证-需要)
keytool -exportcert -alias lcl -file e:\lcl.cer -keystore e:\lcl.keystore

输入keystore密码:
保存在文件中的认证 <lcl.cer>

        这里通过KeyTool工具直接导出的证书,是一个自签名的X.509第三版类型的根证书,并以Base64编码保存。自签名证书虽然可以使用,但未经过CA机构认证,几乎没有任何法律效力。
        2. 构建CA签发证书(我们这里不需要此处的2)
        如果要获取CA机构认证的数字证书,需要将数字证书签发申请(CSR)导出,经由CA机构认证并颁发,同时将认证后的证书导入本地密钥库和信任库。
keytool -certreq -alias lcl -file e:\lcl.csr -keystore e:\lcl.keystore

输入keystore密码:

        生成一个请求签名的证书,用来发送给CA,让CA认证后返还给当前申请人,此处我们为自认证。
        比如CA认证后返回给用户的证书为:catrust.cer
        我们可以通过命令keytoool -printcert 来查看证书的信息
        我们通过命令将其导入到你的密钥库keystore中
keytool -importcert  -trustcacerts -alias lcl -file catrust.cer

        3. 将证书文件导入到自己的密钥库
keytool -importcert -alias lcr -file e:\lcl.cer -keystore e:\lcl.keystore

输入keystore密码:
在 <lcl> 的别名之下,认证已经存在 keystore 中
您仍然想要添加它吗? [否]:  y
认证已添加至keystore中

        4. 将lcl.keystore和lcr.cer拷贝到tomcat的根目录下,我拷贝到c:\tomcat(这是我的tomcat安装目录)下
        5. 配置TOMCAT
        修改%TOMCAT_HOME%\conf\server.xml
        a.)注释掉8080配置
        b.)配置8443
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
		   maxThreads="150" scheme="https" secure="true"
		   keystoreFile="lcl.keystore" keystorePass="aaaaaaa"
		   clientAuth="false" sslProtocol="TLS" />
<!--
https默认的端口是443,若此处设置为443则访问时无需再写端口号
-->

         6. 测试
https://localhost:8443/

<<OVER>>

猜你喜欢

转载自invicme.iteye.com/blog/1018669