範例:Microsoft Certificate Store 配置檔

這個範例檔顯示如何建立伺服器金鑰儲存庫和伺服器主要憑證,用來搭配 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-dboption。這個指令會建立金鑰資料庫。
-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

意見