证书是单点登录认证系统中很重要的一把钥匙,客户端于服务器的交互安全靠的就是证书;本教程由于是演示所以就自己用JDK自带的keytool工具生成证书;如果以后真正在产品环境中使用肯定要去证书提供商去购买,证书认证一般都是由VeriSign认证,中文官方网站:http://www.verisign.com/cn/
一、JDK自带的keytool工具生成证书
1、Windows环境:
a、运行>>cmd
keytool -genkey -alias mytest -keyalg RSA
备注:最后的密钥口令与密钥库口令保持相同,直接回车即可。
b、执行完成后会生成一个.keystore文件(例:C:\Users\Administrator.keystore),将它复制到tomcat的bin目录下(并不一定,放哪里都可以)
c、打开tomcat\conf\server.xml文件,找到以下这一段
<!--
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
-->
d、去掉注释,并添加keystoreFile、keystorePass两个属性:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="bin/.keystore" keystorePass="my123456"
clientAuth="false" sslProtocol="TLS" />
e、之后启动tomcat就可以了,通过https方式访问8443端口,就能看到效果。如果用http访问之前的端口,那么还是普通的未加密连接。
http://localhost:8080/
https://localhost:8433/
备注:如果启动报异常:java.lang.Exception: Connector attribute SSLCertificateFile must be defined when using SSL with APR
把tomcat\conf\server.xml文件中的
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
注释掉即可。