一、服务端证书生成及使用
Example: keytool -genkey -alias my-alias-name -keyalg RSA -keystore keystore-file
Keytool: jdk证书生成工具,安装jdk后先配置jdk的工作环境,在环境变量中添加 JAVA_HOME,值为jdk的安装目录,例如C:/Program Files/Java/jdk1.5.0_08
Path,值为%JAVA_HOME%/BIN;
CLASSPATH,值为.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;
my-alias-name: 证书的别名
keystore-file: 证书文件
输入keystore密码: casserver
您的名字与姓氏是什么?
[Unknown]: casserver
您的组织单位名称是什么?
[Unknown]: tkgame
您的组织名称是什么?
[Unknown]: tkgame
您所在的城市或区域名称是什么?
[Unknown]: beijing
您所在的州或省份名称是什么?
[Unknown]: beijing
该单位的两字母国家代码是什么
[Unknown]: ch
CN=casserver, OU=tkgame, O=tkgame, L=beijing, ST=beijing, C=ch 正确吗?
[否]: y
输入<casca>的主密码
(如果和 keystore 密码相同,按回车):
要注意的两点,keystore密码和您的名字与姓氏
1、“您的名字与姓氏”,翻译很不好
英文是DName,如果服务跟客户端都在本机,可以输入localhost,如果是在网络上分开,则此处输入服务端机器的域名。如:ip是192.168.0.1,在hosts中把192.168.0.1 映射成casserver,则casserver是域名,此处输入casserver。
2、keystore密码要记住,要操作刚生成的证书文件时,需要用到该密码。比如keytool –delete或keytool –list 这个keystore(证书文件),都会要求输入密码。
在 Tomcat_Path/conf/server.xml 文件中配置 SSL 的地方,增加如下配置:
<Connector className="org.apache.coyote.tomcat5.CoyoteConnector"
port="8443" minProcessors="5" maxProcessors="75"
enableLookups="true" disableUploadTimeout="true"
acceptCount="100" debug="0" scheme="https"
secure="true">
<Factory className="org.apache.coyote.tomcat5.CoyoteServerSocketFactory"
keystoreFile="D:/eclipse/casfile2"
keystorePass="casserver" clientAuth="false" protocol="TLS" />
</Connector>
keystoreFile="D:/eclipse/casfile2" –指定证书的位置
keystorePass="casserver" --证书的密码
启动Tomcat,访问https://localhost:8443 ,访问成功说明SSL配置成功
二、证书导出及客户端证书导入
证书导出: keytool -export -file myserver.cert -alias my-alias-name -keystore keystore-file
把别名叫my-alias-name的证书keystore-file,导到文件myserver.cert中
证书导入:
把myserver.cert copy到客户端jdk的jre/lib/security目录下
keytool -import -keystore cacerts -file myserver.cert -alias my-alias-name
把myserver.cert 中别名为 my-alias-name的 “公共 / 私有钥匙对”添加到jdk的cacerts中
操作完成!