30-SSL-HTTPS操作
本章节下载 (240.57 KB)
目 录
SSL(Secure Sockets Layer,安全套接层)是一个安全协议,为基于TCP的应用层协议提供安全连接,如SSL可以为HTTP协议提供安全连接。SSL提供的安全连接可以实现:
l 连接的私密性:在SSL握手阶段生成密钥后,用对称加密算法对传输数据进行加密。
l 身份认证:对服务器和客户端进行基于证书的身份认证,其中客户端认证是可选的。
l 连接的可靠性:消息传输过程中使用基于密钥的MAC(Message Authentication Code,消息验证码)来检验消息的完整性。
SSL协议本身可以分为两层:底层为SSL记录协议;上层为SSL握手协议、SSL密码变化协议和SSL警告协议。
l SSL记录协议:主要负责对上层的数据进行分块、压缩、计算并添加MAC、加密,最后把记录块传输给对方。
l SSL握手协议:客户端和服务器通过握手协议建立一个会话。会话包含一组参数,主要有会话ID、对方的证书、加密套件(包括密钥交换算法、数据加密算法和MAC算法)、压缩算法以及主密钥。SSL会话可以被多个连接共享,以减少会话协商开销。
l SSL密码变化协议:客户端和服务器端通过密码变化协议通知接收方,随后的报文都将使用新协商的加密套件和密钥进行保护和传输。
l SSL警告协议:用来允许一方向另一方报告告警信息。消息中包含告警的严重级别和描述。
SSL服务器端策略是服务器启动时使用的SSL参数。只有与应用层协议(如HTTP协议)关联后,SSL服务器端策略才能生效。
在进行SSL服务器端策略配置之前,需要先配置PKI(Public Key Infrastructure,公钥基础设施)域。PKI域配置方法的详细介绍,请参见“PKI配置”。
表1-1 配置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服务器端策略支持全部6种加密套件 |
配置服务器端SSL握手连接保持时间 |
handshake timeout time |
可选 缺省情况下,服务器端SSL握手连接保持时间是3600秒 |
配置SSL连接关闭模式 |
close-mode wait |
可选 缺省情况下,关闭模式为非wait模式 |
配置缓存的最大会话数目和会话缓存的超时时间 |
session { cachesize size | timeout time } * |
可选 缺省情况下,缓存的最大会话数目为500个,会话缓存的超时时间为3600秒 |
使能基于证书的SSL客户端认证 |
client-verify enable |
可选 缺省情况下,不需要进行基于证书的SSL客户端认证 |
& 说明:
如果配置SSL连接关闭模式为wait模式,则登录到服务器可能会需要等待很长的时间。
l Device作为HTTPS服务器;
l Host作为HTTPS客户端,通过基于SSL的HTTP协议访问HTTPS服务器。
图1-1 SSL服务器端策略组网图
# 配置SSL服务器端策略。
<Sysname> system
[Sysname] ssl server-policy myssl
[Sysname-ssl-server-policy-myssl] pki-domain 1
[Sysname-ssl-server-policy-myssl] client-verify enable
[Sysname-ssl-server-policy-myssl] quit
# 配置HTTPS服务使用的SSL策略为myssl。
[Sysname] ip https ssl-server-policy myssl
# 使能HTTPS服务。
[Sysname] ip https enable
SSL客户端策略是客户端连接SSL服务器时使用的参数。只有与应用层协议关联后,SSL客户端策略才能生效。
在进行SSL客户端策略配置之前,需要先配置PKI域。
表1-2 配置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-3 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服务器端和客户端支持的加密套件不匹配,请用cipersuite命令修改SSL服务器支持的加密套件。
HTTPS(HTTP Security,HTTP安全)是支持SSL(Secure Socket Layer,安全套接层)协议的HTTP协议。
HTTPS通过SSL协议,从以下几方面提高了设备的安全性:
l 通过SSL协议保证合法客户端可以安全地访问设备,禁止非法的客户端访问设备;
l 客户端与设备之间交互的数据需要经过加密,保证了数据传输的安全性和完整性,从而实现了对设备的安全管理;
l 为设备制定基于证书属性的访问控制策略,对客户端的访问权限进行控制,进一步避免了非法客户对设备进行攻击。
& 说明:
设备上,HTTP连接和HTTPS连接的总数不能超过10。
表2-1 HTTPS配置任务简介
配置任务 |
说明 |
详细配置 |
配置HTTPS服务与SSL服务器端策略关联 |
必选 |
|
使能HTTPS服务 |
必选 |
|
配置HTTPS服务与证书属性访问控制策略关联 |
可选 |
|
配置HTTPS服务与ACL关联 |
可选 |
使能HTTPS服务前,必须先配置HTTPS服务与已创建的SSL服务器端策略关联。
表2-2 配置HTTPS服务与SSL服务器端策略关联
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置HTTPS服务与SSL服务器端策略关联 |
ip https ssl-server-policy policy-name |
必选 缺省情况下,没有SSL服务器端策略与HTTPS服务关联 |
& 说明:
l 如果重复执行ip https ssl-server-policy命令,HTTPS服务将只与最后一次配置的SSL服务器端策略关联。
l 关闭HTTPS服务后,将自动取消HTTPS服务与SSL服务器端策略的关联。再次使能HTTPS服务之前,需要重新配置HTTPS服务与SSL服务器端策略关联。
l HTTPS服务处于使能状态时,对与其关联的SSL服务器端策略进行的修改不会生效。
在进行HTTPS配置之前,需要先使能HTTPS服务。只有使能该功能后,其他相关的HTTPS配置才能生效。
表2-3 使能HTTPS服务
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能HTTPS服务 |
ip https enable |
必选 缺省情况下,HTTPS服务处于关闭状态 |
& 说明:
l 使能HTTPS服务后,可以通过display ip https命令查看HTTPS服务的状态,验证HTTPS服务启动是否成功。
l 使能HTTPS服务,会触发SSL的握手协商过程。在SSL握手协商过程中,如果设备的本地证书已经存在,则SSL协商可以成功,HTTPS服务可以正常启动;如果设备的本地证书不存在,则SSL协商过程会触发证书申请流程。由于证书申请需要较长的时间,会导致SSL协商不成功,从而无法正常启动HTTPS服务。因此,在这种情况下,需要多次执行ip https enable命令,这样HTTPS服务才能正常启动。
通过将HTTPS服务与已配置的客户端证书属性访问控制策略关联,可以实现对客户端的访问权限进行控制,进一步保证设备的安全性。
表2-4 配置HTTPS服务与证书属性访问控制策略关联
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置HTTPS服务与证书属性访问控制策略关联 |
ip https certificate access-control-policy policy-name |
必选 缺省情况下,没有证书属性访问控制策略与HTTPS服务关联 |
& 说明:
l 如果重复执行ip https certificate access-control-policy命令,HTTPS服务将只与最后一次配置的证书属性访问控制策略关联。
l 如果配置HTTPS服务与证书属性访问控制策略关联,则必须同时在与HTTPS服务关联的SSL服务器端策略中配置client-verify enable命令,否则,客户端无法登录设备。
l 证书属性访问控制策略的详细介绍请参见“PKI配置”。
通过将HTTPS服务与ACL关联,可以过滤掉来自某些客户端的请求,只允许通过ACL过滤的客户端访问设备。
表2-5 配置HTTPS服务与ACL关联
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置HTTPS服务与ACL关联 |
ip https acl acl-number |
必选 缺省情况下,没有ACL与HTTPS服务关联 |
& 说明:
如果重复执行ip https acl命令,HTTPS服务将只与最后一次配置的ACL关联。
在完成上述配置后,在任意视图下执行display命令可以显示配置后HTTPS的运行情况,通过查看显示信息验证配置的效果。
表2-6 HTTPS显示和维护
操作 |
命令 |
显示HTTPS的状态信息 |
display ip https |
注意:
l 当采用Windows server作为CA时,需要安装Simple Certificate Enrollment Protocol插件。此时,配置PKI domain时,需要使用certificate request from ra命令指定实体从RA注册申请证书。
l 当采用RSA Keon软件时,不需要安装Simple Certificate Enrollment Protocol插件,此时,配置PKI domain时,需要使用certificate request from ca命令指定实体从CA注册申请证书。
l 本配置举例采用Windows server作为CA。
l 主机Host作为HTTPS客户端,设备Device作为HTTPS服务器;
l Host通过Web访问Device,并实现对Device的控制;
l CA(Certification Authentication,认证机构)为Device颁发证书。
图2-1 HTTPS配置组网图
(1) 为Device申请证书
# 配置PKI实体。
<Sysname> system-view
[Sysname] pki entity en
[Sysname-pki-entity-en] common-name http-server1
[Sysname-pki-entity-en] fqdn ssl.security.com
[Sysname-pki-entity-en] quit
# 配置PKI域。
[Sysname] pki domain 1
[Sysname-pki-domain-1] ca identifier ca1
[Sysname-pki-domain-1] certificate request url http://10.1.2.2/certsrv/mscep/mscep.dll
[Sysname-pki-domain-1] certificate request from ra
[Sysname-pki-domain-1] certificate request entity en
[Sysname-pki-domain-1] quit
# 用RSA算法生成本地的密钥对。
[Sysname] rsa local-key-pair create
# 从CA获取服务器证书。
[Sysname] pki retrieval-certificate ca domain 1
# 本地证书申请。
[Sysname] pki request-certificate domain 1
(2) 配置HTTPS服务使用的SSL服务器端策略
# 创建一个名为myssl的SSL服务器端策略。
[Sysname] ssl server-policy myssl
# 配置SSL服务器端策略使用的PKI域名为1。
[Sysname-ssl-server-policy-myssl] pki-domain 1
# 配置服务器端需要认证客户端。
[Sysname-ssl-server-policy-myssl] client-verify enable
[Sysname-ssl-server-policy-myssl] quit
(3) 配置HTTPS服务引用SSL服务器端策略
# 配置HTTPS服务与SSL服务器端策略myssl关联。
[Sysname] ip https ssl-server-policy myssl
(4) 使能HTTPS服务
# 使能HTTPS服务。
[Sysname] ip https enable
(5) 验证配置结果
在Host上打开IE浏览器,输入网址https://10.1.1.1,可以登录Device,并实现对Device的控制。
& 说明:
l PKI配置命令的详细介绍请参见“PKI命令手册”;
l rsa local-key-pair create命令的详细介绍请参见“SSH终端服务命令手册”。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!