這個範例檔顯示如何建立伺服器金鑰儲存庫和伺服器主要憑證,用來搭配 Rational® DOORS®,以及如何設定 Microsoft Certificate Store (MCS) 來驗證伺服器憑證。
範例檔後面接著指令和參數分析。
範例檔
REM 建立一個伺服器金鑰儲存庫檔
gsk8capicmd -keydb -create -db server.kdb -pw ser123 -stash
REM 在 server.kdb 中建立一個伺服器主要憑證,將它新增到 MCS 中
gsk8capicmd -cert -create -db server.kdb -pw ser123 -label "IBMEDCA1" -dn "CN=IBMEDCA1"
gsk8capicmd -cert -extract -db server.kdb -pw ser123 -label "IBMEDCA1" -target temp1.arm
gsk8capicmd -cert -add -db GSK_MS_CERTIFICATE_STORE -label "IBMEDCA1" -file temp1.arm
REM 建立及簽署伺服器憑證
gsk8capicmd -certreq -create -db server.kdb -label IBMSV1 -dn "CN=IBMEDSERV,dc=ukednode1" -file temp2.arm
gsk8capicmd -cert -sign -db server.kdb -pw ser123 -label IBMEDCA1 -file temp2.arm -target temp3.arm
gsk8capicmd -cert -receive -file temp3.arm -db server.kdb -pw ser123
REM 從 MCS 中擷取主要憑證,將它新增到伺服器 kdb 檔中
gsk8capicmd -cert -extract -db GSK_MS_CERTIFICATE_STORE -label "CN=Coy Root" -target temp4.arm
gsk8capicmd -cert -add -db server.kdb -pw ser123 -label "CN=Coy Root" -file temp4.arm
建立伺服器金鑰儲存庫檔
gsk8capicmd -keydb -create -db server.kdb -pw ser123 -stash
- gsk8capicmd -keydb -create
- gsk8capicmd 指令是一個工具,用來管理金鑰資料庫中的金鑰、憑證及憑證申請。
gsk8capicmd 的語法如下:gsk8capicmd modifiers object action options。
在這個範例中,-keydb 是一個金鑰資料庫 object,-create 是要採取的 action,-db 是 option。這個指令會建立金鑰資料庫。
- -db server.kdb -pw ser123
- 金鑰資料庫稱為 server.kdb,含有密碼 -pwd)。在這個範例中,密碼是 ser123。
- -stash
- 建立之後,將金鑰資料庫的密碼隱藏起來。
隱藏檔用來作為自動提供密碼的方式。
當您存取金鑰資料庫時,系統會先檢查是否有隱藏檔。
如果有,會將檔案內容解密,並用來作為密碼輸入。
在建立動作期間,當指定 -stash 標籤時,會將密碼隱藏在一個檔案中,檔名如下:key_database_name.sth。
在金鑰儲存庫中建立主要憑證,將它新增到 MCS 中
主要憑證用來建立伺服器憑證。
由於主要憑證是在 MCS 中,Rational DOORS 用戶端可以利用 MCS 來驗證伺服器憑證。
gsk8capicmd -cert -create -db server.kdb -pw ser123 -label "IBMEDCA1" -dn "CN=IBMEDCA1"
- -cert -create
- 這是 create certificate 指令(-create 動作和 -cert 物件)。
- -label "IBMEDCA1"
- 在憑證上附加一個標籤。
在這個範例中,名稱是 "IBMEDCA1"。使用者利用這個標籤來唯一識別憑證。
- -dn "CN=IBMEDCA1"
- -dn 識別名稱用來唯一識別憑證。輸入必須是用引號括住的字串,格式如下(只有 CN 是必要的):
- CN=通用名稱
- O=組織
- OU=組織單位
- L=位置
- ST=州、省
- C=國家或地區
- DC=網域元件
- EMAIL=電子郵件位址
在這個範例中,識別名稱是 "CN=IBMEDCA1"。
gsk8capicmd -cert -extract -db server.kdb -pw ser123 -label "IBMEDCA1" -target temp1.arm
- -cert -extract -label "IBMEDCA1"
- 這是 extract certificate 指令(-extract 動作和 -cert 物件)。這個指令從金鑰資料庫擷取具名憑證資料 (-label"IBMEDCA1"),將它放在檔案中。
- -target temp1.arm
- 憑證要擷取到其中的檔案。
gsk8capicmd -cert -add -db GSK_MS_CERTIFICATE_STORE -label "IBMEDCA1" -file temp1.arm
- -cert -add -db GSK_MS_CERTIFICATE_STORE
- 這是 add certificate 指令(-add 動作和 -cert 物件)。
這個指令將擷取的憑證 (-label"IBMEDCA1" -file temp1.arm) 新增到 MCS (-db GSK_MS_CERTIFICATE_STORE) 中。
建立以主要憑證簽署的伺服器憑證
伺服器憑證商店在金鑰儲存庫中。
在這個範例中,寫入的識別名稱是針對在稱為
IBMEDSERV 的電腦上執行的伺服器。
gsk8capicmd -certreq -create -db server.kdb -label IBMSV1 -dn "CN=IBMEDSERV,dc=ukednode1" -file temp2.arm
- -certreq -create
- 這是 create certificate request 指令(-create 動作和 -certreq 物件)。
- -label IBMSV1
- 在憑證上附加一個標籤。
在這個範例中,名稱是 IBMSV1。
使用者利用這個標籤來唯一識別憑證。IBMSV1 是在伺服器啟動時未指定憑證名稱的情況下,Rational DOORS 伺服器所用的預設憑證名稱。
- -dn "CN=IBMEDSERV,dc=ukednode1"
- -dn 識別名稱用來唯一識別憑證。在這個範例中,識別名稱是 "CN=IBMEDSERV,dc=ukednode1"。
註: 識別名稱的 IBMEDSERV 部分必須是伺服器的名稱,如果伺服器啟動時使用 -serverhostname 選項,就是這個選項的值。
- -file temp2.arm
- 在憑證申請建立程序中,憑證申請擷取到其中的檔名。
gsk8capicmd -cert -sign -db server.kdb -pw ser123 -label IBMEDCA1 -file temp2.arm -target temp3.arm
- -cert -sign
- 這是 sign certificate 指令(-sign 動作和 -cert 物件)。
這個指令容許金鑰資料庫所儲存的現有憑證簽署憑證申請。
這個指令接受符合指定檔案格式的的憑證申請,以及包含簽署程序中將使用的私密金鑰之憑證的詳細資料。
- -file temp2.arm
- 將簽署之憑證申請的名稱和位置。
- -target temp3.arm
- 將包含已簽章之憑證的檔案名稱。
gsk8capicmd -cert -receive -file temp3.arm -db server.kdb -pw ser123
- -cert -receive
- 這是 receive certificate 指令(-receive 動作和 -cert 物件)。
這個指令儲存要求用來簽署憑證申請的憑證。
將接收之憑證的檔名。
- -file temp3.arm
- 將接收之憑證的檔名。
從 MCS 複製各憑證的主要憑證,並將它新增到伺服器金鑰儲存庫中
範例的這個部分可讓伺服器驗證憑證。
gsk8capicmd -cert -extract -db GSK_MS_CERTIFICATE_STORE -label "CN=Coy Root" -target temp4.arm
- -cert -extract -db GSK_MS_CERTIFICATE_STORE -label -"CN=Coy
Root" target temp4.arm
- 這是 extract certificate 指令(-extract 動作和 -cert 物件)。這個指令從金鑰資料庫 (-db GSK_MS_CERTIFICATE_STORE) 中擷取具名憑證資料 (-label"CN=Coy Root"),將它放在檔案 (temp4.arm) 中。
gsk8capicmd -cert -add -db server.kdb -pw ser123 -label "CN=Coy Root" -file temp4.arm
- -cert -add -label "CN=Coy Root" -file temp4.arm
- 這是 add certificate 指令(-add 動作和 -cert 物件)。
這個指令將憑證新增到具名金鑰儲存庫中。
註: 在這些指令中,主要憑證名稱是 CN=Coy Root。
您使用的主要憑證,名稱會比較長。
另外,如果您的組織使用多個主要憑證,您必須個別擷取及新增每一個主要憑證。
例如,一個主要憑證可能適用於 500 位使用者所用的卡,另一個主要憑證可能適用於其餘 200 位使用者。
在這種情況下,您必須新增這兩個主要憑證 server.kdb。