17-SSL配置
本章節下載: 17-SSL配置 (219.34 KB)
目 錄
本文中有關FIPS模式的詳細介紹,請參見“安全配置指導”中的“FIPS”。
SSL(Secure Sockets Layer,安全套接層)是一個安全協議,為基於TCP的應用層協議提供安全連接,如SSL可以為HTTP協議提供安全連接。SSL協議廣泛應用於電子商務、網上銀行等領域,為網絡上數據的傳輸提供安全性保證。
SSL提供的安全連接可以實現:
· 連接的私密性:利用對稱加密算法對傳輸數據進行加密,並利用密鑰交換算法——RSA(Rivest Shamir and Adleman,非對稱密鑰算法的一種)加密傳輸對稱密鑰算法中使用的密鑰。
· 身份驗證:基於證書利用數字簽名方法對服務器和客戶端進行身份驗證。SSL服務器和客戶端通過PKI(Public Key Infrastructure,公鑰基礎設施)提供的機製從CA(Certificate Authority,認證機構)獲取證書。
· 連接的可靠性:消息傳輸過程中使用基於密鑰的MAC(Message Authentication Code,消息驗證碼)來檢驗消息的完整性。MAC是將密鑰和任意長度的數據轉換為固定長度數據的一種算法。利用MAC算法驗證消息完整性的過程如圖1-1所示。發送者在密鑰的參與下,利用MAC算法計算出消息的MAC值,並將其加在消息之後發送給接收者。接收者利用同樣的密鑰和MAC算法計算出消息的MAC值,並與接收到的MAC值比較。如果二者相同,則報文沒有改變;否則,報文在傳輸過程中被修改,接收者將丟棄該報文。
圖1-1 MAC算法示意圖
· 對稱密鑰算法、非對稱密鑰算法RSA及數字簽名的詳細介紹請參見“安全配置指導”中的“公鑰管理”;
· PKI及證書、CA的詳細介紹請參見“安全配置指導”中的“PKI”。
如圖1-2所示,SSL協議本身可以分為兩層:底層為SSL記錄協議(SSL record protocol);上層為SSL握手協議(SSL handshake protocol)、SSL密碼變化協議(SSL change cipher spec protocol)和SSL警告協議(SSL alert protocol)。
圖1-2 SSL協議棧
· SSL記錄協議:主要負責對上層的數據進行分塊、計算並添加MAC、加密,最後把記錄塊傳輸給對方。
· SSL握手協議:是SSL協議非常重要的組成部分,用來協商通信過程中使用的加密套件(對稱加密算法、密鑰交換算法和MAC算法等)、在服務器和客戶端之間安全地交換密鑰,實現服務器和客戶端的身份驗證。客戶端和服務器通過握手協議建立一個會話。會話包含一組參數,主要有會話ID、對方的證書、加密套件(包括密鑰交換算法、數據加密算法和MAC算法)及主密鑰。
· SSL密碼變化協議:客戶端和服務器端通過密碼變化協議通知對端,隨後的報文都將使用新協商的加密套件和密鑰進行保護和傳輸。
· SSL警告協議:用來允許一方向另一方報告告警信息。消息中包含告警的嚴重級別和描述。
SSL服務器和客戶端需要配置的參數不同,下麵將分別介紹SSL服務器端策略和SSL客戶端策略的配置方法。
表1-1 SSL配置任務簡介
配置任務 |
說明 |
詳細配置 |
配置SSL服務器端策略 |
必選 |
|
配置SSL客戶端策略 |
可選 |
SSL服務器端策略是服務器啟動時使用的SSL參數。隻有與應用層協議(如HTTP協議)關聯後,SSL服務器端策略才能生效。
配置SSL服務器端策略時,需要指定其使用的PKI域,以便通過該PKI域獲取服務器端的證書。因此,在進行SSL服務器端策略配置之前,需要先配置PKI域。PKI域配置方法的詳細介紹,請參見“安全配置指導”中的“PKI”。
表1-2 配置SSL服務器端策略
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建SSL服務器端策略,並進入SSL服務器端策略視圖 |
ssl server-policy policy-name |
必選 |
配置SSL服務器端策略所使用的PKI域 |
pki-domain domain-name |
必選 缺省情況下,沒有配置SSL服務器端策略所使用的PKI域 |
配置SSL服務器端策略支持的加密套件 |
ciphersuite [ dhe_rsa_aes_128_cbc_sha | dhe_rsa_aes_256_cbc_sha | rsa_3des_ede_cbc_sha | rsa_aes_128_cbc_sha | rsa_aes_256_cbc_sha | rsa_des_cbc_sha | rsa_rc4_128_md5 | rsa_rc4_128_sha ] * |
可選 缺省情況下,SSL服務器端策略支持所有的加密套件 FIPS模式下不支持算法rsa_3des_ede_cbc_sha、rsa_des_cbc_sha、rsa_rc4_128_md5和rsa_rc4_128_sha 僅FIPS模式下支持dhe_rsa_aes_128_cbc_sha 和dhe_rsa_aes_256_cbc_sha |算法 |
配置服務器端SSL握手連接保持時間 |
handshake timeout time |
可選 缺省情況下,服務器端SSL握手連接保持時間是3600秒 |
配置SSL連接關閉模式 |
close-mode wait |
可選 缺省情況下,關閉模式為非wait模式 |
配置緩存的最大會話數目和會話緩存的超時時間 |
session { cachesize size | timeout time } * |
可選 缺省情況下,緩存的最大會話數目為500個,會話緩存的超時時間為3600秒 |
配置SSL服務器端要求對SSL客戶端進行基於證書的身份驗證 |
client-verify enable |
可選 缺省情況下,SSL服務器端不要求對SSL客戶端進行基於證書的身份驗證 |
使能SSL客戶端弱認證功能 |
client-verify weaken |
可選 缺省情況下,未使能SSL客戶端弱認證功能 隻有通過client-verify enable命令配置SSL服務器端要求對SSL客戶端進行基於證書的身份驗證後,本命令才會生效 |
· 如果服務器端需要對客戶端進行基於證書的身份驗證,即配置了client-verify enable命令,則必須先為SSL客戶端申請本地證書。
· 目前,SSL協議版本主要有SSL2.0、SSL3.0和TLS1.0(對應SSL協議的版本號為3.1)。設備作為SSL服務器時,可以與SSL3.0和TLS1.0版本的SSL客戶端通信,還可以識別同時兼容SSL2.0和SSL3.0/TLS1.0版本的SSL客戶端發送的報文,並通知該客戶端采用SSL3.0/TLS1.0版本與SSL服務器通信。
用戶可以通過Web頁麵訪問和控製設備。為了防止非法用戶訪問和控製設備,提高設備管理的安全性,設備要求用戶以HTTPS(HTTP Security,支持SSL協議的HTTP)的方式登錄Web頁麵,利用SSL協議實現用戶身份驗證,並保證傳輸的數據不被竊聽和篡改。
為了滿足上述需求,需要進行如下配置:
· 配置Switch作為HTTPS服務器,並為Switch申請證書。
· 為HTTPS客戶端Host申請證書,以便Switch驗證其身份。
其中,負責為Switch和Host頒發證書的認證機構為CA server。
· 本配置舉例中,采用Windows Server作為CA,在CA上需要安裝SCEP(Simple Certificate Enrollment Protocol,簡單證書注冊協議)插件。
· 進行下麵的配置之前,需要確保Switch、Host、CA之間路由可達。
圖1-3 SSL服務器端策略組網圖
(1) 配置HTTPS服務器Switch
# 配置PKI實體en,指定實體的通用名為http-server1、FQDN為ssl.security.com。
<Switch> system-view
[Switch] pki entity en
[Switch-pki-entity-en] common-name http-server1
[Switch-pki-entity-en] fqdn ssl.security.com
[Switch-pki-entity-en] quit
# 配置PKI域1,指定信任的CA名稱為ca server、注冊服務器的URL為http://10.1.2.2/certsrv/mscep/mscep.dll、證書申請的注冊受理機構為RA、實體名稱為en。
[Switch] pki domain 1
[Switch-pki-domain-1] ca identifier ca server
[Switch-pki-domain-1] certificate request url http://10.1.2.2/certsrv/mscep/mscep.dll
[Switch-pki-domain-1] certificate request from ra
[Switch-pki-domain-1] certificate request entity en
[Switch-pki-domain-1] quit
# 生成本地的RSA密鑰對。
[Switch] public-key local create rsa
# 獲取CA的證書。
[Switch] pki retrieval-certificate ca domain 1
# 為Switch申請證書。
[Switch] pki request-certificate domain 1
# 創建一個名為myssl的SSL服務器端策略。
[Switch] ssl server-policy myssl
# 配置SSL服務器端策略使用的PKI域名為1。
[Switch-ssl-server-policy-myssl] pki-domain 1
# 配置服務器端需要驗證客戶端身份。
[Switch-ssl-server-policy-myssl] client-verify enable
[Switch-ssl-server-policy-myssl] quit
# 配置HTTPS服務使用的SSL策略為myssl。
[Switch] ip https ssl-server-policy myssl
# 使能HTTPS服務。
[Switch] ip https enable
# 創建本地用戶usera,密碼為123,服務類型為web。
[Switch] local-user usera
[Switch-luser-usera] password simple 123
[Switch-luser-usera] service-type web
(2) 配置HTTPS客戶端Host
在Host上打開IE瀏覽器,輸入網址http://10.1.2.2/certsrv,根據提示為Host申請證書。
(3) 驗證配置結果
在Host上打開IE瀏覽器,輸入網址https://10.1.1.1,選擇CA server為Host頒發的證書,即可打開Switch的Web登錄頁麵。在登錄頁麵,輸入用戶名usera,密碼123,則可進入Switch的Web配置頁麵,實現對Switch的訪問和控製。
· PKI配置命令的詳細介紹請參見“安全命令參考”中的“PKI”;
· public-key local create rsa命令的詳細介紹請參見“安全命令參考”中的“公鑰管理”;
· HTTPS的詳細介紹,請參見“基礎配置指導”中的“配置通過Web網管登錄設備”。
SSL客戶端策略是客戶端連接SSL服務器時使用的參數。隻有與應用層協議關聯後,SSL客戶端策略才能生效。
如果SSL服務器要求驗證SSL客戶端的身份,則配置SSL客戶端策略時,需要指定其使用的PKI域,以便通過該PKI域獲取客戶端的證書。因此,在進行SSL客戶端策略配置之前,需要先配置PKI域。PKI域配置方法的詳細介紹,請參見“安全配置指導”中的“PKI”。
表1-3 配置SSL客戶端策略
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
創建SSL客戶端策略,並進入SSL客戶端策略視圖 |
ssl client-policy policy-name |
必選 |
配置SSL客戶端策略所使用的PKI域 |
pki-domain domain-name |
可選 缺省情況下,沒有配置SSL客戶端策略所使用的PKI域 |
配置SSL客戶端策略的首選加密套件 |
prefer-cipher { dhe_rsa_aes_128_cbc_sha | dhe_rsa_aes_256_cbc_sha | rsa_3des_ede_cbc_sha | rsa_aes_128_cbc_sha | rsa_aes_256_cbc_sha | rsa_des_cbc_sha | rsa_rc4_128_md5 | rsa_rc4_128_sha } |
可選 缺省情況下,SSL客戶端策略的首選加密套件為rsa_rc4_128_md5 FIPS模式下不支持算法rsa_3des_ede_cbc_sha、rsa_des_cbc_sha、rsa_rc4_128_md5和rsa_rc4_128_sha 僅FIPS模式下支持dhe_rsa_aes_128_cbc_sha 和dhe_rsa_aes_256_cbc_sha |算法 |
配置SSL客戶端策略使用的SSL協議版本 |
version { ssl3.0 | tls1.0 } |
可選 缺省情況下,SSL客戶端策略使用的SSL協議版本號為TLS 1.0 FIPS模式下不支持ssl3.0參數 |
使能基於證書的SSL服務器身份驗證 |
server-verify enable |
可選 缺省情況下,需要進行基於證書的SSL服務器身份驗證 |
如果服務器端需要對客戶端進行基於證書的身份驗證,則必須先在SSL客戶端所屬的PKI域內為SSL客戶端申請本地證書。
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後SSL的運行情況,通過查看顯示信息驗證配置的效果。
表1-4 SSL顯示和維護
操作 |
命令 |
顯示SSL服務器端策略的信息 |
display ssl server-policy { policy-name | all } [ | { begin | exclude | include } regular-expression ] |
顯示SSL客戶端策略的信息 |
display ssl client-policy { policy-name | all } [ | { begin | exclude | include } regular-expression ] |
設備作為SSL服務器時,與SSL客戶端握手失敗。
SSL握手失敗,可能有以下原因:
· 客戶端配置了必須對服務器端進行身份驗證,但SSL服務器端證書不存在,或者證書不能被信任;
· 服務器端配置了必須對客戶端進行身份驗證,但SSL客戶端的證書不存在或不能被信任;
· SSL服務器端和客戶端沒有匹配的加密套件。
(1) 使用debugging ssl命令查看調試信息:
· 如果客戶端配置了必須對服務器端進行身份驗證,而SSL服務器端的證書不存在,請為SSL服務器申請證書;如果服務器端證書不能被信任,請在SSL客戶端安裝為SSL服務器頒發證書的CA服務器根證書,或服務器向SSL客戶端信任的CA服務器重新申請證書;
· 如果服務器端配置了必須對客戶端進行身份驗證,而SSL客戶端的證書不存在或不能被信任,請為客戶端申請並安裝證書。
(2) 使用display ssl server-policy命令查看SSL服務器端策略支持的加密套件。如果SSL服務器端和客戶端沒有匹配的加密套件,請用ciphersuite命令修改SSL服務器支持的加密套件。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!