cas單點登錄(一) 生成證書
生成 證書
實現:使用jdk自帶的keytool 工具生成證書。
命令: keytool -genkey -alias tomcat -keyalg RSA -keystore c:/devsoft/keys/keystore
導出證書:keytool -genkey -alias tomcat -keyalg RSA -keystore c:/devsoft/keys/keystore
將證書導入jdk信任庫: keytool -import -trustcacerts -alias tomcat -file c:/devsoft/keys/tomcat.cer -keystore "C:/Program Files/Java/jre1.8.0_141/lib/security"
4.服務端Tomcat配置
在制作完成密鑰文件、證書文件、密鑰庫文件後即可進行服務端Tomcat的配置。打開$CATALINA_HOME/conf/server.xml
<!--keystoreFile 生成的安全證書的位置-->
<!--keystorePass設置安全證書的密碼-->
<Connector protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false"
sslProtocol="TLS"
keystoreFile="D:\server\tomcat-7.0.55\casserver.keystore"
keystorePass="cas123"
port="443" />
說明:
port一般為8443或443,最常用的是443端口(https默認端口),
這樣https方式訪問的時候可以不加端口號(如:https://sso.demo.com/cas/login);
keystoreFile為tomcat目錄下的密鑰文件;
keystorePass為私鑰密碼;truststoreFile為生成的信任文件,
如果此處不指定則默認為$JAVA_HOME/jre/lib/security/cacerts文件;其它屬性默認即可。
5.生成客戶端密鑰庫文件
單向認證的客戶端配置只需生成客戶端信任文件caserts即可。
首先將服務端生成的證書文件(之前生成的casserver.cer文件)復制到$JAVA_HOME/jre/lib/security下,
然後打開CMD窗口切換到$JAVA_HOME/jre/lib/security下並執行命令:
keytool -import -trustcacerts -alias casclient -storepass changeit -file casserver.cer -keystore cacerts
命令執行成功後JDK目錄/jre/lib/security下多出cacerts文件。
6.客戶端應用配置
TOMCAT修改
tomcat\conf\ server.xml 修改片斷
<!--keystoreFile 生成的安全證書的位置-->
<!--keystorePass設置安全證書的密碼-->
<Connector protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false"
sslProtocol="TLS"
keystoreFile="D:\server\tomcat-7.0.55\casserver.keystore"
keystorePass="cas123"
port="443"/>
7.常見配置錯誤
1)keytool 生成安全證書不能使用IP地址 一律使用域名
2)務必確認客戶端程序使用JDK 路徑正確 分清楚JDK、JRE
cas單點登錄(一) 生成證書