利用jdk中的keytool生成證書。
阿新 • • 發佈:2018-11-10
利用jdk中的keytool生成證書。
最近搭建單點登入CAS伺服器,需要安全證書。
找到一個教程如下:
- 使用第一個命令:keytool -genkey -alias cas -keyalg RSA -validity 999
-keystore c:/etc/cas/thekeystore,這時候會在c盤生成thekeystore檔案。 - 執行命令:keytool -export -file /etc/cas/config/cas.crt -keystore命令:keytool -export -file /etc/cas/config/cas.crt -keystore c:/etc/cas/thekeystore -alias cas,這時候會生出一個交cas.crt的證書。
- 將證書匯入到jre中: keytool -import -file /etc/cas/config/cas.crt -alias cas -keystore %JAVA_HOME%/jre/lib/security/cacerts -storepass changeit,記住要加上jdk的預設密碼,也就是-storepass changeit。
- 記住證書生成後記得要修改host檔案,因為我們是自己生成的證書。修改host檔案其實就是將本地的ip對應到你剛才輸入的域名,也就是test .test.com
但是我在第二個步驟就遇到了一個問題
keytool 錯誤: java.io.FileNotFoundException:\etc\cas\config\cas.crt (系統找不到指定的路徑。)
原來需要自己先在\etc\cas\下新建一個config目錄
然後我在第三個步驟又遇到了兩個問題
- 非法選項: Files\Java\jdk1.7.0_79\jre\lib\security\cacerts
這個不是太清楚原因,但是我通過CD到jdk安裝目錄下的\jre\lib\security,然後從當前目錄開始,%JAVA_HOME%/jre/lib/security/cacerts改為cacerts
執行命令keytool -import -file /etc/cas/config/cas.crt -alias cas -keystore cacerts -storepass changeit,可以成功。 - keytool 錯誤: java.io.FileNotFoundException: cacerts (拒絕訪問。)
找到原因如下,C:\Program Files以及C:\Program Files(x86)都是隻有管理員許可權才能訪問的目錄,所有寫、修改操作都會遭遇”拒絕訪問”。
所以重新用管理員身份開啟CMD