1. 程式人生 > >利用jdk中的keytool生成證書。

利用jdk中的keytool生成證書。

利用jdk中的keytool生成證書。

最近搭建單點登入CAS伺服器,需要安全證書。
找到一個教程如下:

  1. 使用第一個命令:keytool -genkey -alias cas -keyalg RSA -validity 999
    -keystore c:/etc/cas/thekeystore,這時候會在c盤生成thekeystore檔案。
  2. 執行命令: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的證書。
  3. 將證書匯入到jre中: keytool -import -file /etc/cas/config/cas.crt -alias cas -keystore %JAVA_HOME%/jre/lib/security/cacerts -storepass changeit,記住要加上jdk的預設密碼,也就是-storepass changeit。
  4. 記住證書生成後記得要修改host檔案,因為我們是自己生成的證書。修改host檔案其實就是將本地的ip對應到你剛才輸入的域名,也就是test .test.com

但是我在第二個步驟就遇到了一個問題
keytool 錯誤: java.io.FileNotFoundException:\etc\cas\config\cas.crt (系統找不到指定的路徑。)
原來需要自己先在\etc\cas\下新建一個config目錄


然後我在第三個步驟又遇到了兩個問題

  1. 非法選項: 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,可以成功。
  2. keytool 錯誤: java.io.FileNotFoundException: cacerts (拒絕訪問。)

    找到原因如下,C:\Program Files以及C:\Program Files(x86)都是隻有管理員許可權才能訪問的目錄,所有寫、修改操作都會遭遇”拒絕訪問”。
    所以重新用管理員身份開啟CMD