1. 程式人生 > >使用keytool工具產生帶根CA和二級CA的用戶證書

使用keytool工具產生帶根CA和二級CA的用戶證書

bash keys code 目錄 主題 默認 證書鏈 store 輸入

使用keytool工具產生帶根CA和二級CA的用戶證書

1 生成根CA

1.1 生成根CA證書

??根CA實際是一張自簽CA,自簽CA的使用者和頒發者都是它自己。使用下面的命令生成根證書,如果沒有指定keystore則會使用默認在用戶Home目錄下的.keystore秘鑰庫(如果沒有則會創建),輸入秘鑰庫的密碼,填寫根證書的信息,最後填寫根證書秘鑰對的密碼。

keytool -genkeypair -alias rootca -keyalg RSA

??如圖是我填寫的根證書信息,根CA的名字叫rootca:

技術分享圖片

1.2 導出根CA證書

??使用keytool的導出功能,從秘鑰庫中導出根證書,輸入秘鑰庫的密碼,導出的證書文件為rootca.cer

命令如下:

keytool -exportcert -alias rootca -file rootca.cer

2 生成二級CA

2.1 生成二級CA證書

?? 二級CA證書需要由根證書進行簽發,首先需要使用keytool生成二級CA的證書,但是此時的證書還是張自簽證書,我們需要從中生成一個二級CA的證書請求(包含了公鑰),然後通過將證書請求到rootca簽發我們的二級證書,然後我們在將rootca簽發的二級CA證書導入到導出證書請求的秘鑰庫中,完成二級CA的生成。下面是生成二級CA證書命令,此時是張自簽證書:

keytool -genkeypair -alias subca -keyalg RSA

??下面是二級CA證書的信息,名字叫subca,如下圖所示:
技術分享圖片
??此時的證書頒發者和使用者都是自已,如下圖所示:
技術分享圖片

2.2 從二級CA的秘鑰對中生成證書請求

??此時簽的二級CA證書是一張自簽證書,頒發者和使用者都是自身,我們需要從二級CA證書的keypair中導出證書請求,下面是導出證書請求(帶公鑰)的命令,subca是我們上面生成的二級CA的秘鑰對名字,最終導出證書請求文件為subca.csr

keytool -certreq -alias subca -file subca.csr

2.3 使用證書請求從根CA中簽發證書

??通過keytool工具的簽發證書功能,使用rootca對二級CA的證書請求(subca.csr)簽發一張證書。命令如下,alias指定證書的頒發者,infile指定證書請求文件,outfile是簽發證書的名字:

keytool -gencert -alias rootca -infile subca.csr -outfile subca.cer

??可以看到該證書的頒發者已經是rootca,rootca的主題是ChuanYeCA了:
技術分享圖片

2.4 導入二級CA到秘鑰庫中

??此時需要將根CA簽發的二級CA導入會秘鑰庫中,秘鑰庫中的秘鑰對對應的自簽證書將會更新問根CA簽發的證書,導入的命令如下,subca之前用來生成證書請求的秘鑰對名字:

keytool -importcert -alias subca -file subca.cer

??此時查看一下秘鑰庫中的subca的秘鑰對的證書的頒發者是roota了:
技術分享圖片]

3 使用二級證書簽發用戶證書

3.1 生成用戶證書

??簽發用戶證書的流程與產生二級CA的過程是一樣的,下面我們進行產生用戶shayne的證書,將第2步中的所有rootca該為二級CA的subca,將subca變為shayne,先產生shayne的自簽證書,命令如下:

keytool -genkeypair -alias shayne -keyalg RSA

3.2 導出用戶證書請求

??導出的命令如下:

keytool -certreq -alias shayne -file shayne.csr

3.3 用二級CA簽發用戶證書

??簽發的命令如下:

keytool -gencert -alias subca -infile shayne.csr -outfile shayne.cer

3.4 導如用戶證書到秘鑰庫中

??導如證書到秘鑰庫的命令如下:

keytool -importcert -alias shayne -file shayne.cer

??查看我們的秘鑰庫中的用戶的證書信息如下圖:
技術分享圖片

??查看證書文件如下圖:

技術分享圖片

4 查看用戶證書鏈

?? 需要先將根證書和二級CA證書安裝到本地電腦的證書信任庫中,雙擊shayne.cer才能看到該證書是已被信任,而且能夠看到如下圖的證書鏈關系:
技術分享圖片

使用keytool工具產生帶根CA和二級CA的用戶證書