48-SSL操作
本章节下载: 48-SSL操作 (201.82 KB)
目 录
SSL(Secure Sockets Layer,安全套接层)是一个安全协议,为基于TCP的应用层协议提供安全连接,如SSL可以为HTTP协议提供安全连接。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算法示意图
如图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警告协议:用来允许一方向另一方报告告警信息。消息中包含告警的严重级别和描述。
SSL服务器和客户端需要配置的参数不同,下面将分别介绍SSL服务器端策略和SSL客户端策略的配置方法。
表1-1 SSL配置任务简介
配置任务 |
说明 |
详细配置 |
配置SSL服务器端策略 |
必选 |
|
配置SSL客户端策略 |
可选 |
SSL服务器端策略是服务器启动时使用的SSL参数。只有与应用层协议(如HTTP协议)关联后,SSL服务器端策略才能生效。
配置SSL服务器端策略时,需要指定其使用的PKI域,以便通过该PKI域获取服务器端的证书。因此,在进行SSL服务器端策略配置之前,需要先配置PKI域。
表1-2 配置SSL服务器端策略
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建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客户端身份验证 |
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服务器通信。
l 交换机提供Web认证功能对客户端进行接入认证;
l 客户端采用基于SSL的HTTPS方式打开认证页面,保证认证信息传输安全性;
l CA为Switch颁发证书。
本配置举例中,采用Windows Server作为CA,在CA上需要安装SCEP(Simple Certificate Enrollment Protocol,简单证书注册协议)插件。
图1-3 SSL服务器端策略组网图
(1) 为Switch申请证书
# 配置PKI实体。
<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域。
[Switch] pki domain 1
[Switch-pki-domain-1] ca identifier ca1
[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] pki request-certificate domain 1
(2) 配置SSL服务器端策略
# 创建一个名为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
(3) 配置Web认证
# 配置Web认证服务器IP地址、端口号。
[Switch] web-authentication web-server ip 10.10.10.10 port 8080
# 配置Web认证使用HTTPS方式,SSL策略为myssl
[Switch] web-authentication protocol https server-policy myssl
# 开启指定端口Ethernet 1/0/1的Web认证特性,并指定端口接入方式为指定接入方式。
[Switch] interface Ethernet 1/0/1
[Switch-Ethernet1/0/1] web-authentication select method designated
# 创建RADIUS方案radius1并进入其视图。
[Switch] radius scheme radius1
# 设置主认证RADIUS服务器的IP地址。
[Switch-radius-radius1] primary authentication 10.10.10.164
# 设置此方案不计费。
[Switch-radius-radius1] accounting optional
# 设置系统与RADIUS认证服务器交互报文时的加密密码。
[Switch-radius-radius1] key authentication expert
# 指示系统从用户名中去除用户域名后再将之传给RADIUS服务器。
[Switch-radius-radius1] user-name-format without-domain
[Switch-radius-radius1] quit
# 创建Web认证用户所使用的域example.com并进入其视图。
[Switch] domain example.com
# 配置域example.com为缺省用户域。
[Switch] domain default enable example.com
# 指定radius1为该域用户的RADIUS方案。
[Switch-isp-example.com] scheme radius-scheme radius1
# 开启全局Web认证特性(接入控制相关特性一般将全局配置开启放在最后,否则相关参数未配置完成,会造成合法用户无法访问网络)。
[Switch] web-authentication enable
用户打开IE,地址栏内输入:http://10.10.10.10:8080,输入相应的“User name”和“Password”。点击Login,出现认证成功页面:“Authentication passed!”。此时用户可以访问成功外部网络。
SSL客户端策略是客户端连接SSL服务器时使用的参数。只有与应用层协议关联后,SSL客户端策略才能生效。
如果SSL服务器要求验证SSL客户端的身份,则配置SSL客户端端策略时,需要指定其使用的PKI域,以便通过该PKI域获取客户端的证书。因此,在进行SSL客户端策略配置之前,需要先配置PKI域。
表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客户端所属的PKI域内为SSL客户端申请本地证书。
在完成上述配置后,在任意视图下执行display命令可以显示配置后SSL的运行情况,通过查看显示信息验证配置的效果。
表1-4 SSL显示和维护
操作 |
命令 |
显示SSL服务器端策略的信息 |
display ssl server-policy { policy-name | all } |
显示SSL客户端策略的信息 |
display ssl client-policy { policy-name | all } |
设备作为SSL服务器时,与SSL客户端握手失败。
SSL握手失败,可能有以下原因:
l SSL服务器端证书不存在,或者证书不能被信任;
l 如果服务器端配置了必须对客户端进行身份验证,但SSL客户端的证书不存在或不能被信任;
l SSL服务器端和客户端支持的加密套件不匹配。
(1) 使用debugging ssl命令查看调试信息:
l 如果SSL服务器端的证书不存在,请为SSL服务器申请证书;
l 如果服务器端证书不能被信任,请在SSL客户端安装为SSL服务器颁发证书的CA服务器根证书,或服务器向SSL客户端信任的CA服务器重新申请证书;
l 如果服务器端配置了必须对客户端进行身份验证,而SSL客户端的证书不存在或不能被信任,请为客户端申请并安装证书。
(2) 使用display ssl server-policy命令查看SSL服务器端策略支持的加密套件。如果SSL服务器端和客户端支持的加密套件不匹配,请用ciphersuite命令修改SSL服务器支持的加密套件。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!