用keytool創建祕鑰庫以及導入導出數字證書等操作


1生成祕鑰庫並創建一個條目

2往已經存在的祕鑰庫中添加條目

3查看祕鑰庫中的信息

4導出數字證書文件

5將數字證書導入到自己的JRE證書庫中

6從JRE的證書庫中刪除某個數字證書

7其他說明

 

1、生成祕鑰庫並創建一個條目

        祕鑰需要存儲在祕鑰庫中,祕鑰庫可以理解爲一個存儲了一個或多個祕鑰的文件。一個祕鑰庫可以存儲多個密鑰對,每個祕鑰對你都需要給他們取一個名字。

        因爲不存儲任何條目的祕鑰庫是沒有意義的,所以我們在生成祕鑰庫的時候需要指定一個條目,如果不指定,默認是的條目名稱是mykey

        我們在D:\keystore目錄下生成一個文件名爲cjTomcat.keystore的祕鑰庫,因爲這個文件是第一次生成,必須同時生成一個條目,我決定將該祕鑰庫存儲的第一個祕鑰對的條目取名爲testcj。命令是:

 keytool  -genkey  -keystore  "D:\keystore\hellocj.keystore"   -alias  testcj   -keyalg   RSA   -validity  365

如圖:


命令敲完回車之後,需要我們依次輸入一串信息,分別是祕鑰庫的密碼、名字和姓氏等,

如圖:

      上圖中紅框中的都是手動敲入的內容。名字和姓氏這裏一般是填寫一個域名,我這裏填寫的是 localhost,我的祕鑰庫口令使用的是hellocj

在上圖中敲入y回車之後

如圖:

      如果你想讓名爲testcj的這個條目的祕鑰口令和祕鑰庫的口令一樣,直接回車即可,我這裏讓此條目的祕鑰口令爲testcj,所以我輸入testcj

如圖:

   

好了我們的祕鑰庫創建好了,祕鑰庫中也添加了一個名爲testcj的條目,祕鑰庫的密碼是hellocj,testcj這個條目對應的祕鑰口令是testcj

      說明:如果覺得一步一步的輸入很不科學的話,可以使用下面的命令完成上述全部操作:

keytool   -genkey   -keystore  "D:\keystore\hellocj.keystore"   -alias   testcj   -keyalg   RSA   -validity  365      -dname  "CN=localhost, OU=org, O=org.cj, L=昆明, ST=雲南, C=中國"   -keypass  testcj  -storepass   hellocj

如圖:

 

2、往已經存在的祕鑰庫中添加條目

         在第1章節講的是創建一個祕鑰庫文件,並添加一個初始化條目,那麼如果祕鑰庫文件已經存在,我們想往裏面添加條目怎麼辦。例如我想往裏面添加名爲cjTomcat的條目,給該條目設置的口令是helloworld 那麼我的命令是:

 keytool    -genkey   -keystore   "D:\keystore\hellocj.keystore"    -alias     "cjTomcat"       -keyalg   "RSA"   -validity  365  -dname  "CN=127.0.0.1,OU=org, O=org.cj, L=昆明, ST=雲南, C=中國"  -keypass   "helloworld" -storepass  "hellocj"

   如圖:

 

3、查看祕鑰庫中的信息

  好了我現在有一個祕鑰庫了,我知道該祕鑰庫的口令,我想看看該祕鑰庫裏存了啥,命令是:

 keytool   -list  -v  -keystore  D:\keystore\hellocj.keystore   -storepass   "hellocj" 

如圖:



  回車後,可以看到cmd屏幕輸出瞭如下信息:

 



4、導出某個條目的數字證書文件

        好了,祕鑰庫也有了,條目也有了,我想將條目名爲cjTomcat的相關信息以及公鑰導出到一個數字證書文件中,數字證書文件名稱我取名爲cjTomcat.cer,命令如下:

keytool   -alias  "cjTomcat"   -exportcert   -keystore    D:\keystore\hellocj.keystore    -file  D:\keystore\cjTomcat.cer   -storepass   "hellocj"

導出成功

如圖:

 

 

可以雙擊打開cjTomcat.cer文件,看看

如圖:

 

5、將數字證書導入到自己的JRE證書庫中

數字證書中存儲的一般是某個服務器的域名和公鑰,服務器證書需要導入到客戶端的JRE中,我將剛纔生成的cjTomcat.cer這個證書視爲服務器相關的信息。現在我要將條目名爲cjTomcat的數字證書導入到我本地的JRE受信任的證書庫中,導入命令是:

keytool    -import     -alias    "cjTomcat"    -keystore   C:\Java\jdk1.8.0_40\jre\lib\security\cacerts   -file   D:\keystore\cjTomcat.cer    -trustcacerts    -storepass    changeit

      說明:changeitcacerts這個證書庫的默認口令,因爲我們需要操作cacerts這個證書庫文件,所以需要輸入該證書庫的密碼,C:\Java\jdk1.8.0_40\jre需要替換爲你自己的JRE目錄

回車之後,會詢問是否信任cjTomcat.cer中存儲的證書

如圖:

    輸入y回車

如圖:


6、從JRE的證書庫中刪除某個數字證書

       條目名爲cjTomcat的這個數字證書我不想再信任他,我要從我本地的JRE證書庫中刪除他,命令是:

keytool   -delete     -alias      "cjTomcat"      -keystore           "C:\Java\jdk1.8.0_40\jre\lib\security\cacerts"       -storepass   changeit

      說明:changeitcacerts這個證書庫的默認口令,因爲我們需要操作cacerts這個證書庫文件,所以需要輸入該證書庫的密碼,C:\Java\jdk1.8.0_40\jre需要替換爲你自己的JRE目錄

 

如圖:

 

7、其他說明

           上面命令中的參數不一一解釋,很多都很直觀,簡單說明一下-alias指定條目名稱,-keyalg   "RSA"指定加密算法用RSA,-keystor指定祕鑰庫文件,如果目錄有空格,那麼請使用雙引號。-validity 365指定有效期是365天。祕鑰庫的後綴名可以用任意名稱,或者乾脆不要後綴名也是可以的。



發佈了54 篇原創文章 · 獲贊 174 · 訪問量 82萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章