05-PKI配置
本章節下載: 05-PKI配置 (401.25 KB)
目 錄
PKI(Public Key Infrastructure,公鑰基礎設施)是一個利用公鑰理論和技術來實現並提供信息安全服務的具有通用性的安全基礎設施。
PKI係統以數字證書的形式分發和使用公鑰。數字證書是用戶的身份和用戶所持有的公鑰的結合。基於數字證書的PKI係統,能夠為網絡通信和網絡交易(例如電子政務和電子商務)提供各種安全服務。有關公鑰的詳細介紹請參見“安全配置指導”中的“公鑰管理”。
數字證書是經CA(Certificate Authority,證書頒發機構)簽名的、包含公鑰及相關的用戶身份信息的文件,它建立了用戶身份信息與用戶公鑰的關聯。CA對數字證書的簽名保證了證書是可信任的。數字證書的格式遵循ITU-T X.509國際標準,目前最常用的為X.509 V3標準。數字證書中包含多個字段,包括證書簽發者的名稱、被簽發者的名稱(或者稱為主題)、公鑰信息、CA對證書的數字簽名、證書的有效期等。
本手冊中涉及四類證書:CA證書、RA(Registration Authority,證書注冊機構)證書、本地證書和對端證書。
· CA證書是CA持有的證書。若PKI係統中存在多個CA,則會形成一個CA層次結構,最上層的CA是根CA,它持有一個自簽名的證書(即根CA對自己的證書簽名),下一級CA證書分別由上一級CA簽發。這樣,從根CA開始逐級簽發的證書就會形成多個可信任的鏈狀結構,每一條路徑稱為一個證書鏈。
· RA證書是RA持有的證書,由CA簽發。RA受CA委托,可以為CA分擔部分管理工作。RA在PKI係統中是可選的。
· 本地證書是本設備持有的證書,由CA簽發。
· 對端證書是其它設備持有的證書,由CA簽發。
CA根證書的指紋,即根證書內容的散列值,該值對於每一個證書都是唯一的。
由於用戶名稱的改變、私鑰泄漏或業務中止等原因,需要存在一種方法將現行的證書吊銷,即廢除公鑰及相關的用戶身份信息的綁定關係。在PKI中,可以通過發布CRL的方式來公開證書的吊銷信息。當一個或若幹個證書被吊銷以後,CA簽發CRL來聲明這些證書是無效的,CRL中會列出所有被吊銷的證書的序列號。因此,CRL提供了一種檢驗證書有效性的方式。
CA策略是指CA在受理證書請求、頒發證書、吊銷證書和發布CRL時所采用的一套標準。通常,CA以一種叫做CPS(Certification Practice Statement,證書慣例聲明)的文檔發布其策略。CA策略可以通過帶外(如電話、磁盤、電子郵件等)或其它方式獲取。由於不同的CA使用不同的策略,所以在選擇信任的CA進行證書申請之前,必須理解CA策略。
一個PKI體係由終端PKI實體、CA、RA和證書/CRL發布點四類實體共同組成,如下圖1-1。
圖1-1 PKI體係結構圖
終端PKI實體是PKI服務的最終使用者,可以是個人、組織、設備(如路由器、交換機)或計算機中運行的進程,後文簡稱為PKI實體。
CA是一個用於簽發並管理數字證書的可信PKI實體。其作用包括:簽發證書、規定證書的有效期和發布CRL。
RA是一個受CA委托來完成PKI實體注冊的機構,它接收用戶的注冊申請,審查用戶的申請資格,並決定是否同意CA給其簽發數字證書,用於減輕CA的負擔。建議在部署PKI係統時,RA與CA安裝在不同的設備上,減少CA與外界的直接交互,以保護CA的私鑰。
證書/CRL發布點用於對用戶證書和CRL進行存儲和管理,並提供查詢功能。通常,證書/CRL發布點位於一個目錄服務器上,該服務器可以采用LDAP(Lightweight Directory Access Protocol,輕量級目錄訪問協議)協議、HTTP等協議工作。其中,較為常用的是LDAP協議,它提供了一種訪問發布點的方式。LDAP服務器負責將CA/RA服務器傳輸過來的數字證書或CRL進行存儲,並提供目錄瀏覽服務。用戶通過訪問LDAP服務器獲取自己和其他用戶的數字證書或者CRL。
下麵是一個PKI實體申請、使用和維護本地證書的典型工作過程,其中由RA來完成PKI實體的注冊:
(1) PKI實體生成密鑰對。
(2) PKI實體向RA提出證書申請;
(3) RA審核PKI實體身份,將PKI實體身份信息和公鑰以數字簽名的方式發送給CA;
(4) CA驗證數字簽名,同意PKI實體的申請,並頒發證書;
(5) RA接收CA返回的證書,將其發布到LDAP服務器(或其它形式的發布點)上以提供目錄瀏覽服務,並通知PKI實體證書發布成功;
(6) PKI實體通過SCEP(Simple Certificate Enrollment Protocol,簡單證書注冊協議)從RA處獲取證書,利用該證書可以與其它PKI實體使用加密、數字簽名進行安全通信。
(7) 兩個PKI實體互相發送自己的本地證書給對端以互相驗證對端身份的合法性。
(8) 若兩個PKI實體均驗證對端證書為合法,則兩端互相信任,可以建立數據連接;否則,兩端互不信任,不能建立數據連接。
(9) 當用戶的私鑰泄漏或證書即將到期時,可刪除本地證書再重新申請新的證書。
PKI技術能滿足人們對網絡交易安全保障的需求。PKI的應用範圍非常廣泛,並且在不斷發展之中,下麵給出幾個應用實例。
VPN是一種構建在公用通信基礎設施上的專用數據通信網絡,它可以利用網絡層安全協議(如IPsec)和建立在PKI上的加密與數字簽名技術來獲得完整性保護。
電子郵件的安全也要求機密性、完整性、數據源認證和不可抵賴。目前發展很快的安全電子郵件協議S/MIME(Secure/Multipurpose Internet Mail Extensions,安全/多用途Internet郵件擴充協議),是一個允許發送加密和有簽名郵件的協議。該協議的實現需要依賴於PKI技術。
為了透明地解決Web的安全問題,在瀏覽器和服務器之間進行通信之前,先要建立SSL連接。SSL協議允許在瀏覽器和服務器之間進行加密通信,並且利用PKI技術對服務器和瀏覽器端進行身份驗證。
目前,H3C的PKI特性可為安全協議IPsec(IP Security,IP安全)、SSL(Secure Sockets Layer,安全套接字層)提供證書管理機製。
(1) 配置PKI實體
(2) 配置PKI域
(3) (可選)配置證書和CRL的存儲路徑
(4) 申請本地證書
請至少選擇以下一項任務進行配置。
¡ 離線申請本地證書
(5) (可選)停止證書申請過程
(6) (可選)手工獲取證書
將CA簽發的與PKI實體所在PKI域有關的證書保存到本地,以提高證書的查詢效率,減少向PKI證書發布點查詢的次數。
(7) (可選)配置證書驗證
(8) (可選)導出證書
(9) (可選)刪除證書
(10) (可選)配置證書訪問控製策略
通過配置證書訪問控製策略,對用戶訪問權限進行控製,保證服務器端的安全性。
PKI實體的參數是PKI實體的身份信息,CA根據PKI實體提供的身份信息來唯一標識證書申請者。
一個有效的PKI實體參數中必須至少包括以下參數之一:
· DN(Distinguished Name,識別名),包含以下參數:
¡ 實體通用名。對於DN參數,實體的通用名必須配置。
¡ 實體所屬國家代碼,用標準的兩字符代碼表示。例如,“CN”是中國的合法國家代碼,“US”是美國的合法國家代碼
¡ 實體所在地理區域名稱
¡ 實體所屬組織名稱
¡ 實體所屬組織部門名稱
¡ 實體所屬州省
· FQDN(Fully Qualified Domain Name,完全合格域名),是PKI實體在網絡中的唯一標識
· IP地址
PKI實體的配置必須與CA證書頒發策略相匹配,因此建議根據CA證書頒發策略來配置PKI實體,如哪些PKI實體參數為必選配置,哪些為可選配置。申請者的身份信息必須符合CA證書頒發策略,否則證書申請可能會失敗。
Windows 2000 CA服務器的SCEP插件對證書申請的數據長度有一定的限製。PKI實體配置項超過一定數據長度時,CA將不會響應PKI實體的證書申請。這種情況下如果通過離線方式提交申請,Windows 2000 CA服務器可以完成簽發。其它CA服務器(例如RSA服務器和OpenCA服務器)目前沒有這種限製。
PKI實體配置任務如下:
(1) 配置PKI實體DN屬性
(2) 配置PKI實體的FQDN
(3) 配置PKI實體的IP地址
subject-dn命令配置的識別名優先級高於通過common-name、country、locality、organization、organization-unit和state命令單獨配置的識別名。
(1) 進入係統視圖。
system-view
(2) 創建一個PKI實體,並進入該PKI實體視圖。
pki entity entity-name
(3) 配置PKI實體的通用名。
common-name common-name-sting
缺省情況下,未配置PKI實體的通用名。
(4) 配置PKI實體所屬國家代碼。
country country-code-string
缺省情況下,未配置PKI實體所屬國家代碼。
(5) 配置PKI實體所在地理區域名稱。
locality locality-name
缺省情況下,未配置PKI實體所在地理區域名稱。
(6) 配置PKI實體所屬組織名稱。
organization org-name
缺省情況下,未配置PKI實體所屬組織名稱。
(7) 配置PKI實體所屬組織部門名稱。
organization-unit org-unit-name
缺省情況下,未配置PKI實體所屬組織部門名稱。
(8) 配置PKI實體所屬州或省的名稱。
state state-name
缺省情況下,未配置PKI實體所屬州或省的名稱。
(1) 進入係統視圖。
system-view
(2) 創建一個PKI實體,並進入該PKI實體視圖。
pki entity entity-name
(3) 配置PKI實體的識別名,包括通用名、國家代碼、地理區域名稱、組織名稱、組織部門名稱和省份名稱參數。
subject-dn dn-string
缺省情況下,未配置PKI實體的識別名。
(1) 進入係統視圖。
system-view
(2) 創建一個PKI實體,並進入該PKI實體視圖。
pki entity entity-name
(3) 配置PKI實體的FQDN。
fqdn fqdn-name-string
缺省情況下,未配置PKI實體的FQDN。
(1) 進入係統視圖。
system-view
(2) 創建一個PKI實體,並進入該PKI實體視圖。
pki entity entity-name
(3) 配置PKI實體的IP地址。
ip { ip-address | interface interface-type interface-number }
缺省情況下,未配置PKI實體的IP地址。
PKI實體在進行PKI證書申請操作之前需要配置一些注冊信息來配合完成申請的過程。這些信息的集合就是一個PKI域。
PKI域是一個本地概念,創建PKI域的目的是便於其它應用(比如IKE、SSL)引用PKI的配置。
PKI域配置任務如下:
(1) 創建PKI域
(2) 配置設備信任的CA名稱
(3) 指定用戶申請證書的PKI實體名稱
(4) 配置證書申請的注冊受理機構
(5) 配置注冊受理機構服務器的URL
(6) (可選)配置證書申請狀態查詢的周期和最大次數
(7) 指定LDAP服務器
在如下情況下,此配置必選:
¡ 需要通過LDAP協議獲取證書。
¡ 需要通過LDAP協議獲取CRL時,如果CRL的URL中未包含發布點地址信息。
(8) 配置驗證CA根證書時使用的指紋
¡ 當證書申請方式為自動方式時,此配置必選。
¡ 當證書申請方式為手工方式時,此配置可選,若不配置,需要用戶自行驗證根證書指紋。
(9) 指定證書申請時使用的密鑰對
(10) (可選)指定證書的擴展用途
(11) (可選)指定PKI操作產生的協議報文使用的源IP地址
(12) (可選)指定PKSCS#7證書使用的加密算法類型
(1) 進入係統視圖。
system-view
(2) 創建一個PKI域,並進入PKI域視圖。
pki domain domain-name
獲取本地證書之前,若當前的PKI域中沒有CA證書,則需要首先獲取CA證書。獲取CA證書之前,必須配置信任的CA名稱。
如果在同一台服務器主機上配置了兩個CA,且它們的URL是相同的,則需要在PKI域中指定的信任的CA名稱來區分它們。設備信任的CA的名稱隻是在獲取CA證書時使用,申請本地證書時不會用到。
(1) 進入係統視圖。
system-view
(2) 進入PKI域視圖。
pki domain domain-name
(3) 配置設備信任的CA名稱。
ca identifier name
缺省情況下,未配置信任的CA名稱。
(1) 進入係統視圖。
system-view
(2) 進入PKI域視圖。
pki domain domain-name
(3) 指定用於申請證書的PKI實體名稱。
certificate request entity entity-name
缺省情況下,未指定用於申請證書的PKI實體名稱。
(1) 進入係統視圖。
system-view
(2) 進入PKI域視圖。
pki domain domain-name
(3) 配置證書申請的注冊受理機構。
certificate request from { ca | ra }
缺省情況下,未指定證書申請的注冊受理機構。
(1) 進入係統視圖。
system-view
(2) 進入PKI域視圖。
pki domain domain-name
(3) 配置注冊受理機構服務器的URL。
certificate request url url-string
缺省情況下,未指定注冊受理機構服務器的URL。
(1) 進入係統視圖。
system-view
(2) 進入PKI域視圖。
pki domain domain-name
(3) 配置證書申請狀態查詢的周期和最大次數。
certificate request polling { count count | interval interval }
缺省情況下,證書申請查詢間隔為20分鍾,最多查詢50次。
(1) 進入係統視圖。
system-view
(2) 進入PKI域視圖。
pki domain domain-name
(3) 指定LDAP服務器。
ldap-server host hostname [ port port-number ]
缺省情況下,未指定LDAP服務器。
(1) 進入係統視圖。
system-view
(2) 進入PKI域視圖。
pki domain domain-name
(3) 配置驗證CA根證書時使用的指紋。
root-certificate fingerprint { md5 | sha1 } string
缺省情況下,未指定驗證根證書時使用的指紋。
證書申請過程使用了一對主機密鑰:私鑰和公鑰。私鑰由用戶保留,公鑰和其它信息則交由CA進行簽名,從而產生證書。在PKI域中可以引用以下算法的密鑰對:
· DSA密鑰對
· ECDSA密鑰對
· RSA密鑰對
有關DSA、ECDSA、RSA密鑰對的具體配置請參見“安全配置指導”中的“公鑰管理”。
申請證書前必須指定使用的密鑰對,但該密鑰對不必已經存在。申請過程中,如果指定的密鑰對不存在,PKI實體可以根據指定的名字、算法和密鑰模數長度生成相應的密鑰對。
(1) 進入係統視圖。
system-view
(2) 進入PKI域視圖。
pki domain domain-name
(3) 指定證書申請時使用的密鑰對。請選擇其中一項進行配置。
¡ 指定RSA密鑰對。
public-key rsa { { encryption name encryption-key-name [ length key-length ] | signature name signature-key-name [ length key-length ] } * | general name key-name [ length key-length ] }
¡ 指定ECDSA密鑰對。
public-key ecdsa name key-name [ secp192r1 | secp256r1 | secp384r1 | secp521r1 ]
¡ 指定DSA密鑰對。
public-key dsa name key-name [ length key-length ]
缺省情況下,未指定所使用的密鑰對。
證書申請中會帶有指定的證書擴展用途,但最終簽發的證書中帶有哪些擴展用途,由CA自己的策略決定,可能與PKI域中指定的配置不完全一致。應用程序(例如IKE,SSL)認證過程中是否會使用這些用途,由應用程序的策略決定。
目前支持以下證書擴展用途:
· 證書擴展用途為IKE,即IKE對等體使用的證書。
· 證書擴展用途為SSL客戶端,即SSL客戶端使用的證書。
· 證書擴展用途為SSL服務器端,即SSL服務器端使用的證書。
(1) 進入係統視圖。
system-view
(2) 進入PKI域視圖。
pki domain domain-name
(3) 指定證書的擴展用途。
usage { ike | ssl-client | ssl-server } *
缺省情況下,證書可用於所有用途。
如果希望PKI實體操作產生的PKI協議報文的源IP地址是一個特定的地址,例如當CA服務器上的策略要求僅接受來自指定地址或網段的證書申請時,則需要通過配置指定該地址。
(1) 進入係統視圖。
system-view
(2) 進入PKI域視圖。
pki domain domain-name
(3) 指定PKI操作產生的協議報文使用的源IP地址。
(IPv4網絡)
source ip { ip-address | interface interface-type interface-number }
(IPv6網絡)
source ipv6 { ipv6-address | interface interface-type interface-number }
缺省情況下,PKI操作產生的協議報文的源IP地址為係統根據路由查找到的出接口的地址。
證書在線申請過程中需要生成PKCS#7證書,該證書的封裝與解封使用的加密算法類型需要與CA服務器支持的對稱加密算法類型保持一致。
(1) 進入係統視圖。
system-view
(2) 進入PKI域視圖。
pki domain domain-name
(3) 指定PKSCS#7證書使用的加密算法類型。
pkcs7-encryption-algorithm { 3des-cbc | aes-cbc-128 | des-cbc }
undo pkcs7-encryption-algorithm
缺省情況下,PKCS#7證書使用的加密算法為des-cbc。
獲取到本地的證書和CRL有默認存儲路徑,但同時也允許用戶根據自己的需要修改證書文件和CRL文件的存儲路徑。證書和CRL的存儲路徑可以指定為不同的路徑。
修改了證書或CRL的存儲目錄後,原存儲路徑下的證書文件(以.cer和.p12為後綴的文件)和CRL文件(以.crl為後綴的文件)將被移動到新路徑下保存。
重新配置了證書或CRL的存儲路徑後為了防止證書或CRL文件的丟失,重啟或關閉設備前一定要保存配置。
(1) 進入係統視圖。
system-view
(2) 配置證書和CRL的存儲路徑。
pki storage { certificates | crls } dir-path
缺省情況下,證書和CRL的存儲路徑為設備存儲介質上的PKI目錄。
申請證書的過程就是PKI實體向CA自我介紹的過程。PKI實體向CA提供身份信息,以及相應的公鑰,這些信息將成為頒發給該PKI實體證書的主要組成部分。
PKI實體向CA提出證書申請,有離線和在線兩種方式。
· 離線申請方式下,CA允許申請方通過帶外方式(如電話、磁盤、電子郵件等)向CA提供申請信息。
· 在線申請方式下,實體通過SCEP協議向CA提交申請信息。在線申請有自動申請和手工申請兩種方式。下文將詳細介紹這兩種方式的具體配置。
在線申請本地證書需要遵循以下配置限製和指導:
· 本地證書已存在的情況下,為保證密鑰對與現存證書的一致性,不建議執行命令public-key local create或public-key local destroy創建或刪除與現存證書使用的密鑰對相同名稱的密鑰對,否則會導致現存證書不可用。有關公鑰相關命令的詳細介紹,請參見“安全命令參考”中的“公鑰管理”。
· 若要重新申請本地證書,請先使用pki delete-certificate命令刪除本地證書,然後再執行public-key local create命令生成新的密鑰對。
· 一個PKI域中,隻能存在DSA、ECDSA、RSA中一種密鑰算法類型的本地證書。采用DSA和ECDSA算法時,一個PKI域中最多隻能同時申請和存在一個本地證書;采用RSA算法時,一個PKI域中最多隻能同時申請和存在一個用途為簽名的RSA算法本地證書和一個用途為加密的RSA算法本地證書。
申請證書之前必須保證設備的係統時鍾與CA的時鍾同步,否則設備可能會錯誤地認為證書不在有效期內,導致申請證書失敗。調整係統時鍾的方法請參見“設備管理配置指導”中的“設備管理”。
配置證書申請方式為自動方式後,當有應用協議與PKI聯動時,如果應用協議中的PKI實體無本地證書(例如,IKE協商采用數字簽名方法進行身份認證,但在協商過程中沒有發現本地證書),則PKI實體自動通過SCEP協議向CA發起證書申請,並在申請成功後將本地證書獲取到本地保存。在證書申請之前,若當前的PKI域中沒有CA證書,也會首先自動獲取CA證書。
證書自動續簽是指,係統在證書有效期到達之前自動申請新的證書,申請成功後新證書立即替換原有證書。
對於係統自動申請到的證書,當它們即將過期時或正式過期後,係統不會自動向CA發起重新申請。這種情況下,可能會由於證書過期造成應用協議的業務中斷。
為避免由於證書過期造成業務中斷,請在選擇自動方式申請證書時配置證書自動續簽功能。
由於某些CA服務器不支持PKI實體使用相同的通用名多次申請證書,為了保證自動續簽證書成功,請配置automatic-append common-name參數使設備每次都使用新的通用名為PKI實體申請新的證書。
(1) 進入係統視圖。
system-view
(2) 進入PKI域視圖。
pki domain domain-name
(3) 配置證書申請為自動方式。
certificate request mode auto [ password { cipher | simple } string | renew-before-expire days [ reuse-public-key ] [ automatic-append common-name ] ] *
缺省情況下,證書申請為手工方式。
證書申請為自動方式時,可以指定吊銷證書時使用的密碼,是否需要指定密碼是由CA服務器的策略決定的。
配置證書申請方式為手工方式後,需要手工執行申請本地證書的操作。手工申請成功後,設備將把申請到的本地證書自動獲取到本地保存。
(1) 進入係統視圖。
system-view
(2) 進入PKI域視圖。
pki domain domain-name
(3) 配置證書申請為手工方式。
certificate request mode manual
缺省情況下,證書申請為手工方式。
(4) 退回係統視圖。
quit
(5) 手工獲取CA證書。
如果PKI域中不存在CA證書,需要手工獲取CA證書。CA證書用來驗證獲取到的本地證書的真實性和合法性。
(6) 手工申請本地證書。
pki request-certificate domain domain-name [ password password ]
此命令不會被保存在配置文件中。
手工申請本地證書時,可以指定吊銷證書時使用的密碼,是否需要指定密碼是由CA服務器的策略決定的。
當無法通過SCEP協議向CA在線申請證書時,可以采用此方式申請本地證書。
(1) 進入係統視圖。
system-view
(2) 進入PKI域視圖。
pki domain domain-name
(3) 配置證書申請為手工方式。
certificate request mode manual
缺省情況下,證書申請為手工方式。
(4) 退回係統視圖。
quit
(5) 手工獲取CA證書。
如果PKI域中不存在CA證書,需要手工獲取CA證書。CA證書用來驗證獲取到的本地證書的真實性和合法性。
(6) 手工申請本地證書或生成PKCS#10證書申請。
pki request-certificate domain domain-name pkcs10 [ filename filename ]
此命令不會被保存在配置文件中。
(7) 通過帶外方式將本地證書申請信息發送給CA。
(8) 通過帶外方式將本地證書獲取到本地。
(9) 將本地證書導入指定的PKI域中。
pki import domain domain-name { der local filename filename | p12 local filename filename | pem local } [ filename filename ] }
用戶可以通過此配置停止正在進行中的證書申請過程。用戶在證書申請時,可能由於某種原因需要改變證書申請的一些參數,比如通用名、國家代碼、FQDN等,而此時證書申請過程正在進行,為了新的申請不與之前的申請發生衝突,建議先停止之前的申請,再進行新的申請。可以通過display pki certificate request-status命令查詢正在進行中的證書申請過程。
另外,刪除PKI域也可以停止對應的證書申請過程。
(1) 進入係統視圖。
system-view
(2) 停止證書申請過程。
pki abort-certificate-request domain domain-name
此命令不會被保存在配置文件中。
獲取證書的目的是:將CA簽發的與PKI實體所在PKI域有關的證書存放到本地,以提高證書的查詢效率,減少向PKI證書發布點查詢的次數。
用戶通過此配置可以將已存在的CA證書、本地證書或者外部PKI實體證書獲取至本地保存。獲取證書有兩種方式:離線導入方式和在線方式。
· 離線導入方式:通過帶外方式(如FTP、磁盤、電子郵件等)取得證書,然後將其導入至本地。如果設備所處的環境中沒有證書的發布點、CA服務器不支持通過SCEP協議與設備交互、或者證書對應的密鑰對由CA服務器生成,則可采用此方式獲取證書。
· 在線方式:從證書發布服務器上在線獲取證書並下載至本地,包括通過SCEP協議獲取CA證書和通過LDAP協議獲取本地或對端證書。
如果本地已有CA證書存在,則不允許執行在線方式獲取CA證書的操作。若想重新獲取,請先使用pki delete-certificate命令刪除CA證書與本地證書後,再執行獲取CA證書的命令。
如果PKI域中已經有本地證書或對端證書,仍然允許執行在線方式獲取本地證書或對端證書,獲取到的證書直接覆蓋已有證書。但對於RSA算法的證書而言,一個PKI域中可以存在一個簽名用途的證書和一個加密用途的證書,不同用途的證書不會相互覆蓋。
如果使能了CRL檢查,手工獲取證書時會觸發CRL檢查,如果CRL檢查時發現待獲取的證書已經吊銷,則獲取證書失敗。
設備根據自身的係統時間來判斷當前的證書是否還在其有效期內,設備係統時間不準確可能導致設備對於證書有效期的判斷出現誤差或錯誤,例如認為實際還在有效期內證書已過期,因此請確保設備係統時間的準確性。
獲取本地證書或對端證書之前必須完成以下操作:
· 在線獲取本地證書和對端證書是通過LDAP協議進行的,因此在線獲取本地證書或對端證書之前必須完成PKI域中指定LDAP服務器的配置。
· 離線導入證書之前,需要通過FTP、TFTP等協議將證書文件傳送到設備的存儲介質中。如果設備所處的環境不允許使用FTP、TFTP等協議,則可以直接采用在終端上粘貼證書內容的方式導入,但是粘貼的證書必須是PEM(Privacy Enhanced Mail,增強保密郵件)格式的,因為隻有PEM格式的證書內容為可打印字符。
· 隻有存在簽發本地證書的CA證書鏈才能成功導入本地證書,這裏的CA證書鏈可以是保存在PKI域中的,也可以是本地證書中攜帶的。若設備和本地證書中都沒有CA證書鏈,則需要預先獲取到CA證書鏈。導入對端證書時,需要滿足的條件與導入本地證書相同。
· 離線導入含有被加密的密鑰對的本地證書時,需要輸入加密口令。請提前聯係CA服務器管理員取得該口令。
(1) 進入係統視圖。
system-view
(2) 手工獲取證書。
¡ 離線導入方式
pki import domain domain-name { der { ca | local | peer } filename filename | p12 local filename filename | pem { ca | local | peer } [ filename filename ] }
¡ 在線方式
pki retrieve-certificate domain domain-name { ca | local | peer entity-name }
pki retrieve-certificate命令不會被保存在配置文件中。
在使用每一個證書之前,必須對證書進行驗證。證書驗證包括檢查本地、CA證書是否由可信的CA簽發,證書是否在有效期內,證書是否未被吊銷。申請證書、獲取證書以及應用程序使用PKI功能時,都會自動對證書進行驗證,因此一般不需要使用命令行手工進行證書驗證。如果用戶希望在沒有任何前述操作的情況下單獨執行證書的驗證,可以手工執行證書驗證。
配置證書驗證時可以設置是否必須進行CRL檢查。CRL檢查的目的是查看PKI實體的證書是否被CA吊銷,若檢查結果表明PKI實體的證書已經被吊銷,那麼該證書就不再被其它PKI實體信任。
· 如果配置為開啟CRL檢查,則需要首先從CRL發布點獲取CRL。PKI域中未配置CRL發布點的URL時,從該待驗證的證書中獲取發布點信息:優先獲取待驗證的證書中記錄的發布點,如果待驗證的證書中沒有記錄發布點,則獲取CA證書中記錄的發布點(若待驗證的證書為CA證書,則獲取上一級CA證書中記錄的發布點)。如果無法通過任何途徑得到發布點,則通過SCEP協議獲取CRL。由於設備通過SCEP獲取CRL是在獲取到CA證書和本地證書之後進行,因此該方式下必須保證設備已經獲取到CA證書和本地證書。開啟了CRL檢查的情況下,如果PKI域中不存在相應的CRL、CRL獲取失敗、或者CRL檢查時發現待獲取的證書已經吊銷,則手動申請證書、獲取證書的操作將會失敗。
· 如果配置為關閉CRL檢查,則不需要獲取CRL。
驗證一個PKI域中的CA證書時,係統會逐級驗證本域CA證書鏈上的所有CA證書的有效性,因此需要保證設備上存在該CA證書鏈上的所有上級CA證書所屬的PKI域。驗證某一級CA證書時,係統會根據該CA證書的簽發者名(IssuerName)查找對應的上一級CA證書,以及上一級CA證書所屬的(一個或多個)PKI域。若查找到了相應的PKI域,且該PKI域中開啟了CRL檢查,則根據該PKI域中的配置對待驗證的CA證書進行吊銷檢查,否則不檢查待驗證的CA證書是否被吊銷。檢查CA證書鏈中的CA(根CA除外)是否被吊銷後,從根CA逐級驗證CA證書鏈的簽發關係。
如果指定證書吊銷情況檢查的方法為none方式,則CRL檢查功能不生效。
(1) 進入係統視圖。
system-view
(2) 進入PKI域視圖。
pki domain domain-name
(3) (可選)配置CRL發布點的URL。
crl url url-string
缺省情況下,未指定CRL發布點的URL。
(4) 開啟CRL檢查。
crl check enable
缺省情況下,CRL檢查處於開啟狀態。
(5) 退回係統視圖。
quit
(6) 獲取CA證書。
在進行本地證書驗證操作之前必須首先獲取CA證書。
(7) (可選)獲取CRL並下載至本地。
pki retrieve-crl domain domain-name
驗證非根CA證書和本地證書時,如果PKI域中沒有CRL,係統會自動獲取CRL再進行驗證;如果PKI域已經存在CRL,則可以繼續獲取CRL,獲取到的新CRL會覆蓋已有CRL。
獲取到的CRL不一定是本域CA簽發的,但肯定是本域CA證書鏈上的一個CA證書簽發的。
(8) 驗證證書的有效性。
pki validate-certificate domain domain-name { ca | local }
(1) 進入係統視圖。
system-view
(2) 進入PKI域視圖。
pki domain domain-name
(3) 關閉CRL檢查。
undo crl check enable
缺省情況下,CRL檢查處於開啟狀態。
(4) 退回係統視圖。
quit
(5) 獲取CA證書。
在進行本地證書驗證操作之前必須首先獲取CA證書。
(6) 驗證證書的有效性。
pki validate-certificate domain domain-name { ca | local }
此命令不會被保存在配置文件中。
PKI域中已存在的CA證書、本地證書可以導出到文件中保存或導出到終端上顯示,導出的證書可以用於證書備份或供其它設備使用。
以PKCS12格式導出所有證書時,PKI域中必須有本地證書,否則會導出失敗。
導出證書時若不指定文件名,則表示要將證書導出到終端上顯示,這種方式僅PEM格式的證書才支持。
導出證書時若指定文件名,則表示證書將導出到指定文件中保存。導出RSA算法類型的本地證書時,設備上實際保存證書的證書文件名稱並不一定是用戶指定的名稱,它與本地證書的密鑰對用途相關,具體的命名規則請參見PKI命令手冊。
(1) 進入係統視圖。
system-view
(2) 導出證書。
¡ 導出DER格式的證書。
pki export domain domain-name der { all | ca | local } filename filename
¡ 導出PKCS12格式的證書。
pki export domain domain-name p12 { all | local } passphrase p12-key filename filename
¡ 導出PEM格式的證書。
pki export domain domain-name pem { { all | local } [ { 3des-cbc | aes-128-cbc | aes-192-cbc | aes-256-cbc | des-cbc } pem-key ] | ca } [ filename filename ]
由CA頒發的證書都會設置有效期,證書生命周期的長短由簽發證書的CA來確定。當用戶的私鑰被泄漏或證書的有效期快到時,應該重新申請新的證書。以下情況需要刪除證書:
· 證書過期時,可以通過此配置刪除已經存在的本地證書、CA證書或對端證書。
· 用戶的私鑰被泄漏或希望重新申請證書時,可以通過此配置刪除已經存在的本地證書。
刪除CA證書時將同時刪除所在PKI域中的本地證書、所有對端證書以及CRL。
重新申請證書之前,應該先使用命令public-key local destroy刪除舊的密鑰對,再使用public-key local create生成新的密鑰對。相關命令的詳細介紹可參考“安全命令參考”中的“公鑰管理”。
(1) 進入係統視圖。
system-view
(2) 刪除證書。
pki delete-certificate domain domain-name { ca | local | peer [ serial serial-num ] }
如果未指定序列號,則刪除所有對端證書。
通過配置證書的訪問控製策略,可以對安全應用中的用戶訪問權限進行進一步的控製,保證了與之通信的服務器端的安全性。例如,在HTTPS(Hypertext Transfer Protocol Secure,超文本傳輸協議的安全版本)應用中,HTTPS服務器可以通過引用證書訪問控製策略,根據自身的安全需要對客戶端的證書合法性進行檢測。
一個證書訪問控製策略中可以定義多個證書屬性的訪問控製規則(通過rule命令配置),每一個訪問控製規則都與一個證書屬性組關聯。一個證書屬性組是一係列屬性規則(通過attribute命令配置)的集合,這些屬性規則是對證書的頒發者名、主題名以及備用主題名進行過濾的匹配條件。
如果一個證書中的相應屬性能夠滿足一條訪問控製規則所關聯的證書屬性組中所有屬性規則的要求,則認為該證書和該規則匹配。如果一個證書訪問控製策略中有多個規則,則按照規則編號從小到大的順序遍曆所有規則,一旦證書與某一個規則匹配,則立即結束檢測,不再繼續匹配其它規則。
規則的匹配結果決定了證書的有效性,具體如下:
· 如果證書匹配到的規則中指定了permit關鍵字,則該證書將被認為通過了訪問控製策略的檢測且有效。
· 如果證書匹配到的規則中指定了deny關鍵字,則該證書將被認為未通過訪問控製策略的檢測且無效。
· 若遍曆完所有規則後,證書沒有與任何規則匹配,則該證書將因不能通過訪問控製策略的檢測而被認為無效。
· 若證書訪問控製策略下某訪問控製規則關聯的證書屬性組不存在,或者該證書屬性組沒有配置任何屬性,則認為被檢測的證書都能夠與此規則匹配。
· 若安全應用(如HTTPS)引用的證書訪問控製策略不存在,則認為該應用中被檢測的證書有效。
(1) 進入係統視圖。
system-view
(2) 創建證書屬性組,並進入證書屬性組視圖。
pki certificate attribute-group group-name
(3) 配置證書頒發者名、證書主題名及備用主題名的屬性規則。
attribute id { alt-subject-name { fqdn | ip } | { issuer-name | subject-name } { dn | fqdn | ip } } { ctn | equ | nctn | nequ} attribute-value
缺省情況下,對證書頒發者名、證書主題名及備用主題名沒有限製。
(4) 退回係統視圖。
quit
(5) 創建證書訪問控製策略,並進入證書訪問控製策略視圖。
pki certificate access-control-policy policy-name
(6) 配置證書屬性的訪問控製規則。
rule [ id ] { deny | permit } group-name
缺省情況下,未配置證書屬性的訪問控製規則,認為所有證書都可以通過該控製策略的過濾。
一個證書訪問控製策略中可配置多個訪問控製規則。
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後PKI的運行情況,通過查看顯示信息驗證配置的效果。
表1-1 PKI顯示和維護
操作 |
命令 |
顯示證書訪問控製策略的配置信息 |
display pki certificate access-control-policy [ policy-name ] |
顯示證書屬性組的配置信息 |
display pki certificate attribute-group [ group-name ] |
顯示證書內容 |
display pki certificate domain domain-name { ca | local | peer [ serial serial-num ] } |
顯示PKI域的證書續簽狀態 |
display pki certificate renew-status [ domain domain-name ] |
顯示證書申請狀態 |
display pki certificate request-status [ domain domain-name ] |
顯示存儲在本地的CRL |
display pki crl domain domain-name |
獲取CA證書失敗。
可能有以下原因:
· 網絡連接故障,如網線折斷,接口鬆動;
· 沒有設置信任的CA名稱;
· 證書申請的注冊受理機構服務器URL位置不正確或未配置;
· 設備的係統時鍾與CA的時鍾不同步;
· 未指定CA服務器可接受的PKI協議報文的源IP地址,或者指定的地址不正確;
· 指紋信息不合法。
· 排除物理連接故障;
· 查看各必配項是否都正確配置;
· 可通過ping命令測試注冊服務器是否連接正常;
· 保持係統時鍾與CA同步;
· 與CA服務器管理員聯係,並保證配置正確的源IP地址;
· 在證書服務器上查看指紋信息是否合法。
獲取本地證書失敗。
可能有以下原因:
· 網絡連接故障;
· 執行獲取操作之前PKI域中沒有CA證書;
· 沒有配置LDAP服務器或者配置錯誤;
· PKI域沒有指定申請使用的密鑰對,或者指定的密鑰對與待獲取的本地證書不匹配;
· PKI域中沒有引用PKI實體配置,或PKI實體配置不正確;
· 開啟了CRL檢查,但是本地沒有CRL且無法獲取到CRL;
· 未指定CA服務器可接受的PKI協議報文的源IP地址,或者指定的地址不正確;
· 設備時鍾與CA服務器的時鍾不同步。
· 排除物理連接故障;
· 獲取或者導入CA證書;
· 配置正確的LDAP服務器;
· 在PKI域中指定申請使用的密鑰對,生成指定的密鑰對,並使其與待獲取的本地證書匹配;
· PKI域中引用正確的PKI實體,並正確配置該PKI實體;
· 獲取CRL;
· 與CA服務器管理員聯係,並保證配置正確的源IP地址;
· 保持係統時鍾與CA一致。
手工申請證書失敗。
可能有以下原因:
· 網絡連接故障,如網線折斷,接口鬆動;
· 執行申請操作之前PKI域中沒有CA證書;
· 證書申請的注冊受理機構服務器URL位置不正確或未配置;
· 沒有配置證書申請注冊受理機構或配置不正確;
· 沒有配置PKI實體DN中必配參數或者配置參數不正確;
· PKI域中沒有指定證書申請使用的密鑰對,或者PKI中指定的密鑰對在申請過程中已被修改;
· 當前PKI域中有互斥的證書申請程序正在運行;
· 未指定CA服務器可接受的PKI協議報文的源IP地址,或者指定的地址不正確;
· 設備時鍾與CA服務器的時鍾不同步。
· 排除物理連接故障;
· 獲取或者導入CA證書;
· 可通過ping命令測試注冊服務器是否連接正常;
· 配置正確的證書申請注冊受理機構服務器URL;
· 查看CA/RA注冊策略,並對相關的PKI實體DN屬性進行正確配置;
· 在PKI域中指定證書申請使用的密鑰對,或者刪除設備上PKI域中指定的密鑰對並重新申請本地證書;
· 使用pki abort-certificate- request domain命令停止正在運行的證書申請程序;
· 與CA服務器管理員聯係,並保證配置正確的源IP地址;
· 保持係統時鍾與CA一致。
獲取CRL失敗。
可能有以下原因:
· 網絡連接故障,如網線折斷,接口鬆動;
· 獲取CRL之前未先取得CA證書;
· 未設置CRL發布點位置,且不能從PKI域中CA證書或本地證書中獲得正確的發布點;
· 設置的CRL發布點位置不正確;
· 不能獲取CRL發布點的情況下,通過SCEP協議獲取CRL,但此時PKI域中不存在本地證書,或本地證書的密鑰對已被修改,或PKI域中沒有配置正確的證書申請URL;
· CRL發布點的URL配置中包含不完整的地址(沒有主機名或主機地址)且PKI域中沒有配置LDAP服務器或者配置不正確;
· 未指定CA服務器可接受的PKI協議報文的源IP地址,或者指定的地址不正確。
· 排除物理連接故障;
· 獲取或導入CA證書;
· 設置正確CRL發布點位置:配置包含完整地址的CRL發布點的URL或在PKI域中配置正確的LDAP服務器;
· 在無法獲取CRL發布點的情況下,配置正確的證書申請URL,並保證已經獲取了本地證書,且本地保存的密鑰對的公鑰與本地證書的公鑰匹配;
· 在CA上發布CRL;
· 與CA服務器管理員聯係,並保證配置正確的源IP地址。
導入證書失敗。
可能有以下原因:
· 開啟了CRL檢查,但是本地沒有CRL且無法獲取到CRL;
· 指定的導入格式與實際導入的文件格式不一致。
· 執行undo crl check enable命令,關閉CRL檢查;
· 請確認導入的文件格式並選擇正確的導入格式。
導入證書失敗。
可能有以下原因:
· PKI域中沒有CA證書且導入的本地證書中不含CA證書鏈;
· 開啟了CRL檢查,但是本地沒有CRL且無法獲取到CRL;
· 指定的導入格式與實際導入的文件格式不一致;
· 設備上和證書中都沒有該本地證書對應的密鑰對;
· 證書已經被吊銷;
· 證書不在有效期;
· 係統時鍾設置錯誤。
· 獲取或者導入CA證書;
· 執行undo crl check enable命令,關閉CRL檢查,或者先獲取CRL;
· 請確認導入的文件格式並選擇正確的導入格式;
· 請導入包含私鑰內容的證書文件;
· 導入未被吊銷的證書;
· 導入還在有效期內的證書;
· 請重新設置正確的係統時鍾。
導出證書失敗。
可能有以下原因:
· 以PKCS#12格式導出所有證書時PKI域中沒有本地證書;
· 用戶所設置的導出路徑不存在;
· 用戶所設置的導出路徑不合法;
· 要導出的本地證書的公鑰和它所屬PKI域中的密鑰對的公鑰部分不匹配;
· 設備磁盤空間已滿。
· 獲取或申請本地證書;
· 用mkdir命令創建用戶所需路徑;
· 設置正確的導出路徑;
· 在PKI域中配置匹配的密鑰對;
· 清理設備磁盤空間。
設置證書或CRL存儲路徑失敗。
可能有以下原因:
· 用戶所設置的證書或CRL存儲路徑不存在;
· 用戶所設置的證書或CRL存儲路徑不合法;
· 設備磁盤空間已滿。
· 用mkdir命令創建用戶所需路徑;
· 設置正確的證書或CRL存儲路徑;
· 清理設備磁盤空間。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!