环境: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>>