如何:創建開發期間使用的臨時證書
此證書通常是證書鏈的壹部分,並且可以在計算機的受信任根證書頒發機構存儲中找到根證書頒發機構。擁有證書鏈允許您定義壹組證書,其中根證書頒發機構通常來自您的組織或業務單位。為了在開發時模擬這種情況,需要創建兩個證書來滿足安全性要求。第壹個證書是自簽名證書,它放在受信任的根證書頒發機構存儲中;從第壹證書創建第二證書,並將其放在本地計算機位置的個人存儲中或當前用戶位置的個人存儲中。本主題將指導您完成使用證書創建工具(MakeCert.exe)創建這兩個證書的步驟,該工具由提供。NET框架SDK。重要說明:證書創建工具生成的證書僅用於測試目的。部署服務或客戶端時,請確保使用證書頒發機構提供的適當證書。這可能是來自某個組織或第三方的Windows Server 2003證書服務器。默認情況下,Makecert.exe(證書創建工具)創建壹個證書,根證書頒發機構稱之為“根證書代理”。因為根證書代理不是受信任的根證書頒發機構存儲,這將使這些證書不安全。通過創建放置在受信任的根證書頒發機構存儲區中的自簽名證書,您可以創建壹個與您的部署環境非常相似的開發環境。有關創建和使用證書的更多信息,請參見使用證書。有關將證書用作憑據的更多信息,請參見保護服務和客戶端。有關使用Microsoft Authenticode技術的教程,請參考Authenticode概述和教程。創建自簽名根證書頒發機構證書,並使用MakeCert.exe工具和以下開關導出私鑰:-nsobjectname。指定主題名稱。慣例是在主題標題的“常用名”前加上前綴“CN =”。-r .指定證書將是自簽名的。-svprivateKeyFile .指定包含私鑰容器的文件。例如,以下命令創建壹個主題名稱為“CN=TempCA”的自簽名證書。makecert-n " cn = tempca "-r-svtempca . pvktempca . cer系統會提示您提供密碼來保護私鑰。創建由此根證書簽名的證書時需要此密碼。創建由根證書頒發機構證書簽名的新證書使用MakeCert.exe工具和以下開關:-sksubjectKey。保存私鑰的主題密鑰容器的位置。如果密鑰容器不存在,將創建壹個。如果既沒有使用-sk選項也沒有使用-sv選項,默認情況下會創建壹個名為JoeSoft的密鑰容器。-nsobjectname .指定主題名稱。慣例是在主題標題的“常用名”前加上前綴“CN =”。-ivissuerKeyFile .指定頒發者的私鑰文件。-icissuerCertFile .指定頒發者的證書位置。例如,下面的命令使用頒發者的私鑰創建壹個主題名稱為“CN=SignedByCA”的證書,該證書由TempCA根證書頒發機構證書簽名。makecert-sk signed by ca-iv tempca . pvk-n " cn = signed by ca "-ictempca . cer signed by ca . cer-srcurrentuser-ssmy在受信任的根證書頒發機構存儲中安裝證書以創建自簽名證書後,可以將其安裝在受信任的根證書頒發機構存儲中。這裏的計算機信任用該證書簽名的任何證書。為此,當您不再需要證書時,可以立即將其從存儲中刪除。當您刪除這個根證書頒發機構證書時,它簽署的所有其他證書都將變成未授權的。根證書頒發機構證書只是壹種機制,如果需要,可以定義壹組證書。例如,在對等應用程序中,您通常不需要根證書頒發機構,因為您只信任對方提供的證書的個人身份。在受信任的根證書頒發機構中安裝自簽名證書,並打開證書管理單元。有關更多信息,請參見如何:使用MMC管理單元查看證書。打開要存儲證書的文件夾,本地計算機或當前用戶。打開受信任的根證書頒發機構文件夾。右鍵單擊證書文件夾,單擊所有任務,然後單擊導入。按照屏幕向導的說明將TempCa.cer導入存儲區域。在WCF使用證書安裝臨時證書後,您可以使用這些證書來開發將證書指定為客戶端憑據類型的WCF解決方案。例如,以下XML配置將消息安全模式和證書指定為客戶端憑據類型。將證書指定為客戶端憑據類型。在服務的配置文件中,使用下面的XML將安全模式設置為message,將客戶端憑據類型設置為certificate。xmlLang & lt綁定& gt& ltwsHttpBinding & gt& ltbinding name = " certificate for client " >& lt安全性& gt& ltmessage clientCredentialType = " Certificate "/& gt;& lt/security & gt;& lt/binding & gt;& lt/wsHttpBinding & gt;& lt/bindings & gt;在客戶端的配置文件中,使用以下XML指定證書存在於用戶存儲中,可以通過在SubjectName字段中搜索“CohoWinery”的值來找到該用戶存儲。xmlLang & lt行為& gt& ltendpointBehaviors & gt& ltbehavior name="CertForClient " >& lt客戶端憑據& gt& ltclient certificate find value = " CohoWinery " x509 find type = " FindBySubjectName "/& gt;& lt/clientCredentials >& lt/behavior & gt;& lt/endpoint behaviors & gt;& lt/behaviors & gt;有關在WCF使用證書的更多信息,請參見使用證書。安全性請通過右鍵單擊證書並單擊“刪除”,確保從受信任的根證書頒發機構和個人文件夾中刪除所有臨時根證書頒發機構證書。