一、證書設定
1、生成密鑰
-genkeypair 生成密鑰-keyalg 指定密鑰算法,這時指定RSA,
-keysize 指定密鑰長度,預設是1024位,這裡指定2048,最好長一點
-siglag 指定數字簽名算法,這裡指定為SHA1withRSA算法
-validity 指定證書有效期,我這裡指定36500天
-alias 指定别名,這裡是cas.server.com
-keystore 指定密鑰庫存儲位置,這裡存在d盤
-dname 指定使用者資訊,不用一個一個回答它的問題了;
**注意:CN=域名,我們采用test.sso.com **
keytool -genkeypair -keyalg RSA -keysize 2048 -sigalg SHA1withRSA -validity 36500 -alias test.sso.com -keystore d:/keys/tomcat.keystore
輸入上述指令,密鑰庫密碼輸入123456,然後回車,就在d盤keys檔案夾下生成了tomcat.keystore檔案;
2、生成證書
keytool -exportcert -alias test.sso.com -keystore d:/keys/tomcat.keystore -file d:/keys/tomcat.cer -rfc
3、導入cacerts證書
**注意:導入證書之前首先要把對應jdk路徑下的cacerts删除
keytool -import -alias test.sso.com -keystore %JAVA_HOME%\jre\lib\security\cacerts -file d:/keys/tomcat.cer -trustcacerts
回車後輸入密碼為 changeit并同意導入;
如果導入出現:非法選項: Files\Java\jdk1.8.0_111\jre\lib\security\cacerts,那麼需要首先進入到 %JAVA_HOME%\jre\lib\security目錄下,在執行以下代碼:
keytool -import -alias test.sso.com -keystore cacerts -file d:/keys/tomcat.cer -trustcacerts
如果出現:keytool 錯誤: java.io.FileNotFoundException: cacerts (拒絕通路。),
那麼:找到java的檔案夾,改為完全控制即可。
4、常用指令
//檢視cacerts中的證書清單
keytool -list -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -storepass changeit
//删除cacerts中指定名稱的證書
keytool -delete -alias test.sso.com -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -storepass changeit
二、Tomcat設定
打開$CATALINA_HOME/conf/server.xml,增加
<Connector protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false"
sslProtocol="TLS"
keystoreFile="/usr/local/certificate/tomcat.keystore"
keystorePass="123456" port="8443" />
port一般為8443或443,最常用的是443端口(https預設端口),
這樣https方式通路的時候可以不加端口号(如:
https://test.sso.com);
keystoreFile為tomcat目錄下的密鑰檔案;
keystorePass為私鑰密碼;truststoreFile為生成的信任檔案,