證書是單點登錄認證系統中很重要的一把鑰匙,客戶端於服務器的交互安全靠的就是證書;本教程由於是演示所以就自己用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" />
註釋掉即可。