选择区域语言: EN CN HK

11-安全配置指导

12-SSL配置

本章节下载  (210.34 KB)

docurl=/cn/Service/Document_Software/Document_Center/Routers/Catalog/MSR/MSR_50/Configure/Operation_Manual/H3C_MSR_CG-Release_2104(V1.10)/11/201311/803425_30005_0.htm

12-SSL配置


1 SSL配置

1.1  SSL简介

SSL(Secure Sockets Layer,安全套接层)是一个安全协议,为基于TCP的应用层协议提供安全连接,如SSL可以为HTTP协议提供安全连接。SSL协议广泛应用于电子商务、网上银行等领域,为网络上数据的传输提供安全性保证。

1.1.1  SSL安全机制

SSL提供的安全连接可以实现:

l              连接的私密性:利用对称加密算法对传输数据进行加密,并利用密钥交换算法——RSA(Rivest Shamir and Adleman,非对称密钥算法的一种)加密传输对称密钥算法中使用的密钥。

l              身份验证:基于证书利用数字签名方法对服务器和客户端进行身份验证。SSL服务器和客户端通过PKI(Public Key Infrastructure,公钥基础设施)提供的机制从CA(Certificate Authority,认证机构)获取证书。

l              连接的可靠性:消息传输过程中使用基于密钥的MAC(Message Authentication Code,消息验证码)来检验消息的完整性。MAC是将密钥和任意长度的数据转换为固定长度数据的一种算法。利用MAC算法验证消息完整性的过程如图1-1所示。发送者在密钥的参与下,利用MAC算法计算出消息的MAC值,并将其加在消息之后发送给接收者。接收者利用同样的密钥和MAC算法计算出消息的MAC值,并与接收到的MAC值比较。如果二者相同,则报文没有改变;否则,报文在传输过程中被修改,接收者将丢弃该报文。

图1-1 MAC算法示意图

 

l    对称密钥算法、非对称密钥算法RSA及数字签名的详细介绍请参见“安全配置指导”中的“公钥管理”;

l    PKI及证书、CA的详细介绍请参见“安全配置指导”中的“PKI”。

 

1.1.2  SSL协议结构

图1-2所示,SSL协议本身可以分为两层:底层为SSL记录协议(SSL record protocol);上层为SSL握手协议(SSL handshake protocol)、SSL密码变化协议(SSL change cipher spec protocol)和SSL警告协议(SSL alert protocol)。

图1-2 SSL协议栈

 

l              SSL记录协议:主要负责对上层的数据进行分块、计算并添加MAC、加密,最后把记录块传输给对方。

l              SSL握手协议:是SSL协议非常重要的组成部分,用来协商通信过程中使用的加密套件(对称加密算法、密钥交换算法和MAC算法等)、在服务器和客户端之间安全地交换密钥,实现服务器和客户端的身份验证。客户端和服务器通过握手协议建立一个会话。会话包含一组参数,主要有会话ID、对方的证书、加密套件(包括密钥交换算法、数据加密算法和MAC算法)及主密钥。

l              SSL密码变化协议:客户端和服务器端通过密码变化协议通知对端,随后的报文都将使用新协商的加密套件和密钥进行保护和传输。

l              SSL警告协议:用来允许一方向另一方报告告警信息。消息中包含告警的严重级别和描述。

1.2  SSL配置任务简介

SSL服务器和客户端需要配置的参数不同,下面将分别介绍SSL服务器端策略和SSL客户端策略的配置方法。

表1-1 SSL配置任务简介

配置任务

说明

详细配置

配置SSL服务器端策略

必选

1.3 

配置SSL客户端策略

可选

1.4 

 

1.3  配置SSL服务器端策略

SSL服务器端策略是服务器启动时使用的SSL参数。只有与应用层协议(如HTTP协议)关联后,SSL服务器端策略才能生效。

1.3.1  配置准备

配置SSL服务器端策略时,需要指定其使用的PKI域,以便通过该PKI域获取服务器端的证书。因此,在进行SSL服务器端策略配置之前,需要先配置PKI域。PKI域配置方法的详细介绍,请参见“安全配置指导”中的“PKI”。

1.3.2  配置SSL服务器端策略

表1-2 配置SSL服务器端策略

操作

命令

说明

进入系统视图

system-view

-

配置硬件加密卡的加密模式为SSL模式

card-mode slot slot-number ssl

使用硬件加密卡进行SSL加解密时,为必选

创建SSL服务器端策略,并进入SSL服务器端策略视图

ssl server-policy policy-name

必选

配置SSL服务器端策略所使用的PKI域

pki-domain domain-name

必选

缺省情况下,没有配置SSL服务器端策略所使用的PKI域

配置SSL服务器端策略支持的加密套件

ciphersuite [ 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服务器端策略支持所有的加密套件

配置服务器端SSL握手连接保持时间

handshake timeout time

可选

缺省情况下,服务器端SSL握手连接保持时间是3600秒

配置SSL连接关闭模式

close-mode wait

可选

缺省情况下,关闭模式为非wait模式

配置缓存的最大会话数目和会话缓存的超时时间

session { cachesize size | timeout time } *

可选

缺省情况下,缓存的最大会话数目为500个,会话缓存的超时时间为3600秒

使能基于证书的SSL客户端身份验证

client-verify enable

可选

缺省情况下,不需要进行基于证书的SSL客户端身份验证

配置使用硬件加密卡进行SSL加解密

crypto-accelerator encrypt interface-number

可选

缺省情况下,使用软件进行SSL加解密

 

l    crypto-accelerator命令的支持情况与设备的型号有关,请以设备的实际情况为准。

l    如果服务器端需要对客户端进行基于证书的身份验证,即配置了client-verify enable命令,则必须先为SSL客户端申请本地证书。

l    目前,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服务器通信。

 

1.3.3  SSL服务器端策略典型配置举例

1. 组网需求

用户可以通过Web页面访问和控制设备。为了防止非法用户访问和控制设备,提高设备管理的安全性,设备要求用户以HTTPS(HTTP Security,支持SSL协议的HTTP)的方式登录Web页面,利用SSL协议实现用户身份验证,并保证传输的数据不被窃听和篡改。

为了满足上述需求,需要进行如下配置:

l              配置Device作为HTTPS服务器,并为Device申请证书。

l              为HTTPS客户端Host申请证书,以便Device验证其身份。

其中,负责为Device和Host颁发证书的认证机构为CA server。

l    本配置举例中,采用Windows Server作为CA,在CA上需要安装SCEP(Simple Certificate Enrollment Protocol,简单证书注册协议)插件。

l    进行下面的配置之前,需要确保Device、Host、CA之间路由可达。

 

2. 组网图

图1-3 SSL服务器端策略组网图

 

3. 配置步骤

(1)        配置HTTPS服务器Device

# 配置PKI实体en,指定实体的通用名为http-server1、FQDN为ssl.security.com。

<Device> system-view

[Device] pki entity en

[Device-pki-entity-en] common-name http-server1

[Device-pki-entity-en] fqdn ssl.security.com

[Device-pki-entity-en] quit

# 配置PKI1,指定信任的CA名称为ca server、注册服务器的URLhttp://10.1.2.2/certsrv/mscep/mscep.dll、证书申请的注册受理机构为RA、实体名称为en

[Device] pki domain 1

[Device-pki-domain-1] ca identifier ca server

[Device-pki-domain-1] certificate request url http://10.1.2.2/certsrv/mscep/mscep.dll

[Device-pki-domain-1] certificate request from ra

[Device-pki-domain-1] certificate request entity en

[Device-pki-domain-1] quit

# 生成本地的RSA密钥对。

[Device] public-key local create rsa

# 获取CA的证书。

[Device] pki retrieval-certificate ca domain 1

# Device申请证书。

[Device] pki request-certificate domain 1

# 创建一个名为mysslSSL服务器端策略。

[Device] ssl server-policy myssl

# 配置SSL服务器端策略使用的PKI域名为1。

[Device-ssl-server-policy-myssl] pki-domain 1

# 配置服务器端需要验证客户端身份。

[Device-ssl-server-policy-myssl] client-verify enable

[Device-ssl-server-policy-myssl] quit

# 配置HTTPS服务使用的SSL策略为myssl。

[Device] ip https ssl-server-policy myssl

# 使能HTTPS服务。

[Device] ip https enable

# 创建本地用户usera,密码为123,服务类型为telnet。

[Device] local-user usera

[Device-luser-usera] password simple 123

[Device-luser-usera] service-type telnet

(2)        配置HTTPS客户端Host

在Host上打开IE浏览器,输入网址http://10.1.2.2/certsrv,根据提示为Host申请证书。

(3)        验证配置结果

在Host上打开IE浏览器,输入网址https://10.1.1.1,选择CA server为Host颁发的证书,即可打开Device的Web登录页面。在登录页面,输入用户名usera,密码123,则可进入Device的Web配置页面,实现对Device的访问和控制。

l    PKI配置命令的详细介绍请参见“安全命令参考”中的“PKI”;

l    public-key local create rsa命令的详细介绍请参见“安全命令参考”中的“公钥管理”;

l    HTTPS的详细介绍,请参见“基础配置指导”中的“登录设备”。

 

1.4  配置SSL客户端策略

SSL客户端策略是客户端连接SSL服务器时使用的参数。只有与应用层协议关联后,SSL客户端策略才能生效。

1.4.1  配置准备

如果SSL服务器要求验证SSL客户端的身份,则配置SSL客户端策略时,需要指定其使用的PKI域,以便通过该PKI域获取客户端的证书。因此,在进行SSL客户端策略配置之前,需要先配置PKI域。PKI域配置方法的详细介绍,请参见“安全配置指导”中的“PKI”。

1.4.2  配置SSL客户端策略

表1-3 配置SSL客户端策略

操作

命令

说明

进入系统视图

system-view

-

创建SSL客户端策略,并进入SSL客户端策略视图

ssl client-policy policy-name

必选

配置SSL客户端策略所使用的PKI域

pki-domain domain-name

可选

缺省情况下,没有配置SSL客户端策略所使用的PKI域

配置SSL客户端策略的首选加密套件

prefer-cipher { 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

配置SSL客户端策略使用的SSL协议版本

version { ssl3.0 | tls1.0 }

可选

缺省情况下,SSL客户端策略使用的SSL协议版本号为TLS 1.0

使能基于证书的SSL服务器身份验证

server-verify enable

可选

缺省情况下,需要进行基于证书的SSL服务器身份验证

 

如果服务器端需要对客户端进行基于证书的身份验证,则必须先在SSL客户端所属的PKI域内为SSL客户端申请本地证书。

 

1.5  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 ]

 

1.6  常见配置错误举例

1.6.1  SSL握手失败

1. 故障现象

设备作为SSL服务器时,与SSL客户端握手失败。

2. 故障分析

SSL握手失败,可能有以下原因:

l              客户端配置了必须对服务器端进行身份验证,但SSL服务器端证书不存在,或者证书不能被信任;

l              服务器端配置了必须对客户端进行身份验证,但SSL客户端的证书不存在或不能被信任;

l              SSL服务器端和客户端没有匹配的加密套件。

3. 故障排除

(1)        使用debugging ssl命令查看调试信息:

l              如果客户端配置了必须对服务器端进行身份验证,而SSL服务器端的证书不存在,请为SSL服务器申请证书;如果服务器端证书不能被信任,请在SSL客户端安装为SSL服务器颁发证书的CA服务器根证书,或服务器向SSL客户端信任的CA服务器重新申请证书;

l              如果服务器端配置了必须对客户端进行身份验证,而SSL客户端的证书不存在或不能被信任,请为客户端申请并安装证书。

(2)        使用display ssl server-policy命令查看SSL服务器端策略支持的加密套件。如果SSL服务器端和客户端没有匹配的加密套件,请用ciphersuite命令修改SSL服务器支持的加密套件。

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!