这近在因工作需要要制作一个ssl证书。本人在网上也看到了一下资料。但大多数都是摘抄别人,没有结合自己实际情况就胡乱发表。本人根据自己实际操作和参照他人资料编写一个配置ssl证书文档。
配置前提:1.本地机器上安装过java(jdk)。在dos界面敲javac出现如下界面
证明本地jdk已经成功安装。
2:启动tomcat。看自己机器能不能访问tomcat的管理界面(就是那只猫)。这点很重要,我在网上参照别人的资料,好多没有提只一点。自己走了不少歪路。
如果以上都具备,就可以开发了。
1.具体步骤。
A.给服务器生成证书。
B.给客服端生成证书。
C.让服务器信任客户端证书
D.配置tomcat的server.xml文件。及相关程序启动文件web.xml.
E.安装SSL证书。
《1》方案一。生成单向证书
第一步:为服务器生成证书。(在安装jdk环境下的dos操作界面进行生成证书)
keytool -genkey -v -alias tomcat -keyalg RSA -validity 3650 -keystore c:\zlx\tomcat.keystore -dname "CN=localhost,OU=cn,O=cn,L=cn,ST=cn,c=cn" -storepass password -keypass password
注解:keytool表示工具。
genkey:创建一个证书。
alias:证明别名(此时我们叫tomcat,也可以取别的名字)。
validity:表示证书的有效期(3650表示十年,默认90天)。
keystore:表示证书存放物理路径(c:\zlx\tomcat.keystore。我们此时放在c盘的tomcat文件夹下)。
dname:里面是一些证书说明。其中CN=localhost。和最后的C=cn很重要。本机测试就是localhost或者是本地ip。如果不是就要相对应的域名,如:(CN=www.baidu.com)。C=cn表示所在国家。其余的OU,O,L,ST表示所在省份,市,公司。
storepass:表示服务器证书私钥口令,此时为password,
keypass:表示存储文件验证口令。此时为password。(注:私钥口令和储文件验证口令必须一致)
如图在dos执行上面命令图:
此时服务器证书就在c:\zlx目录下就建好了。
第二步:配置tomcat的server.xml文件
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="c:\zlx\tomcat.keystore" keystorePass="password "/>
注:clientAuth=“false”表示,单向配置。clientAuth=“true”表示双向配置。
《1》方案二。生成双向证书
第一步:生成服务器证书。
命令:
keytool -genkey -v -alias tomcat -keyalg RSA -keystore tomcat.keystore -dname "CN=localhost,OU=sy,O=sy,L=sy,ST=ln,C=cn" -validity 3650 -storepass 123456 -keypass 123456
(名字解释同配置单向证书一样)
第二步:生成客户端证书。
命令:
keytool -genkey -v -alias ceshi -keyalg RSA -storetype PKCS12 -keystore ceshi.p12 -dname "CN=ceshi,OU=sy,O=sy,L=sy,ST=ln,C=cn " -validity 3650 -storepass ceshi -keypass ceshi"
第三步:让服务器信任客户端证书(此操作分两步,第一步将票p12文件转换成cer文件)
命令:(转换文件)
keytool -export -alias ceshi -keystore ceshi.p12 -storetype PKCS12 -storepass ceshi -rfc -file ceshi.cer
命令:(信任)
keytool -import -alias ceshi -v -file ceshi.cer -keystore tomcat.keystore -storepass 123456
第四步:配置tomcat服务器server.xml文件
Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="true" sslProtocol="TLS"
keystoreFile=" c:\zlx\tomcat.keystore" keystorePass="password"
truststoreFile=" c:\zlx\tomcat.keystore " truststorePass="password "
truststoreType="JKS"/>
注:(1) 双向认证需要设置clientAuth="true",则需要强制验证客户端证书。客户端必须安装“ceshi.p12”,导入ceshi.p12导入IE。
(2)访问地址:https://localhost:8443/。
总结:其实用jdk生成ssl生成证书过程不是很麻烦,就是在安装证书的时候有点困难。这是和操作系统有关。如图所示有一个案例仅供参考。
(1) 在安装p12文件时,会经常出现这样的问题,这是因为操作系统出现漏洞,不妨先把补丁打上,然后再试!
(2) 在安装好证书,一切准备工作都做好后,测试ssl后,页面会出现此证书不被浏览器信任。这是需要把该证书添加到浏览器的“受信任的根证书颁发机构”
注:以上就是本人在自己电脑上用jdk为tomcat配置ssl证书的过程。 还有jdk为jboss其他服务器配置ssl证书,其实道理都是一样的。
其次关于ssl我会在下节说明一下。