简介
注意:本文档包含FN40789的内容,以及其他上下文、示例、更新和问题解答。
在2020年1月1日00:00 UTC时,在IOS/IOS-XE系统上生成的所有自签名证书(SSC)都将过期,除非系统在生成SSC时运行的是固定版本的IOS/IOS-XE。 此后,非固定IOS系统将无法生成新的SSC。 任何依赖这些自签名证书来建立或终止安全连接的服务在证书到期后可能无法工作。
此问题仅影响由Cisco IOS或Cisco IOS XE设备生成并应用于设备上服务的自签名证书。证书颁发机构(CA)生成的证书(包括Cisco IOS CA功能生成的证书)不受此问题影响。
受影响的系统
所有使用自签名证书的IOS/IOS-XE系统,没有CSCvi48253
修复,或者没有CSCvi48253
修复SSC生成时的问题。 包括:
- 所有IOS 12.x
- 15.6(3)M7、15.7(3)M5、15.8(3)M3、15.9(3)M之前的所有IOS 15.x
- 16.9.1之前的所有IOS-XE
背景
Cisco IOS和Cisco IOS XE软件中的某些功能依靠数字签名的X.509证书进行加密身份验证。这些证书可由外部第三方CA生成,也可以在Cisco IOS或Cisco IOS XE设备本身上作为自签名证书生成。受影响的Cisco IOS和Cisco IOS XE软件版本始终将自签名证书的到期日期设置为2020-01-01 00:00:00 UTC。在此日期后,证书过期且无效。
可能依赖自签名证书的服务包括:
一般功能:
- 通过TLS的HTTP服务器(HTTPS)- HTTPS会在浏览器中产生错误,表示证书已过期。
- SSH服务器 — 使用X.509证书对SSH会话进行身份验证的用户可能无法进行身份验证。(很少使用X.509证书。用户名/密码身份验证和公共/私钥身份验证不受影响。)
- RESTCONF - RESTCONF连接可能失败。
协作功能:
- 基于TLS的会话发起协议(SIP)
- 启用加密信令的Cisco Unified Communications Manager Express(CME)
- 启用加密信令的思科统一可存活远程站点电话(SRST)
- 启用加密信令的Cisco IOS dspfarm资源(会议、媒体终端点或转码)
- 瘦客户端控制协议(SCCP)电话控制应用(STCAPP)端口,配置有加密信令
- 媒体网关控制协议(MGCP)和H.323呼叫信令,无预共享密钥,通过IP安全(IPSec)
- 安全模式下的思科统一通信网关服务API(使用HTTPS)
无线功能:
- 旧版Cisco IOS接入点(2005年或更早版本)与无线局域网控制器之间的LWAPP/CAPWAP连接;有关详细信息,请参阅思科现场通知FN63942。
尝试在2020-01-01 00:00:00 UTC后在受影响的Cisco IOS或Cisco IOS XE软件版本上生成自签名证书,会导致以下错误:
../cert-c/source/certobj.c(535) : E_VALIDITY : validity period start later than end
任何依赖自签名证书的服务都可能无法运行。例如:
- SIP over TLS呼叫将无法完成。
- 注册到Cisco Unified CME并启用加密信令的设备将不再运行。
- 启用加密信令的Cisco Unified SRST将不允许设备注册。
- 启用加密信令的Cisco IOS dspfarm资源(会议、媒体终端点或转码)将不再注册。
- 配置了加密信令的STCAPP端口将不再注册。
- 使用MGCP或H.323呼叫信令通过网关在IPSec上进行的呼叫将失败,而无预共享密钥。
- 在安全模式(使用HTTPS)下使用思科统一通信网关服务API的API调用将失败。
- RESTCONF可能失败。
- 用于管理设备的HTTPS会话将显示浏览器警告,表示证书已过期。
- AnyConnect SSL VPN会话将无法建立或报告无效证书。
- IPSec连接将无法建立。
如何识别受影响的产品
注意:要受此现场通知的影响,设备必须定义自签名证书,且自签名证书必须应用于以下概述的一个或多个功能。当证书过期且不需要立即操作时,仅存在自签名证书不会影响设备的操作。要受到影响,设备必须符合下面第3步和第4步中的标准。
要确定是否使用自签名证书,请完成以下步骤:
-
输入show running-config |在设备上开始crypto命令。
-
查找加密PKI信任点配置。
-
在加密PKI信任点配置中,查找信任点注册配置。必须配置信任点注册,以便“自签名”受到影响。此外,自签名证书也必须出现在配置中。请注意,信任点名称可能不包含“自签名”字样,如本例所示。
crypto pki trustpoint TP-self-signed-XXXXXXXX
enrollment selfsigned
subject-name cn=IOS-Self-Signed-Certificate-662415686
revocation-check none
rsakeypair TP-self-signed-662415686
!
!
crypto pki certificate chain TP-self-signed-XXXXXXXX
certificate self-signed 01
3082032E 31840216 A0030201 02024101 300D0609 2A864886 F70D0101 05050030
30312E30 2C060355 04031325 494A531D 53656C66 2D536967 6E65642D 43657274
...
ECA15D69 11970A66 252D34DC 760294A6 D1EA2329 F76EB905 6A5153C9 24F2958F
D19BFB22 9F89EE23 02D22D9D 2186B1A1 5AD4
如果信任点注册未配置为“自签名” — 此字段通知不影响设备。不需要采取任何操作。
如果信任点注册配置为“自签名”,并且自签名证书出现在配置中 — 此字段通知可能影响设备。继续执行第 4 步。
-
如果在步骤3中确定信任点注册已配置为“自签名”,且自签名证书出现在配置中,则检查自签名证书是否应用于设备上的功能。
以下示例配置中显示了可能与SSC关联的各种功能:
- 对于HTTPS服务器,此文本必须存在:
ip http secure-server
此外,还可以如下所示定义信任点。如果以下命令不存在,则默认行为是使用自签名证书。
ip http secure-trustpoint TP-self-signed-XXXXXXXX
如果信任点已定义,并且指向自签名证书以外的证书,则不会影响您。
对于HTTPS服务器,过期证书的影响较小,因为自签名证书已不受Web浏览器的信任,并且即使证书未过期也会生成警告。过期证书的存在可能会更改您在浏览器中收到的警告。
-
对于SIP over TLS,此文本将出现在配置文件中:
voice service voip
sip
session transport tcp tls
!
sip-ua
crypto signaling default trustpoint <self-signed-trustpoint-name>
! or
crypto signaling remote-addr a.b.c.d /nn trustpoint <self-signed-trustpoint-name>
!
-
对于启用加密信令的Cisco Unified CME,此文本将显示在配置文件中:
telephony-service
secure-signaling trustpoint <self-signed-trustpoint-name>
tftp-server-credentials trustpoint <self-signed-trustpoint-name>
-
对于启用加密信令的Cisco Unified SRST,此文本将显示在配置文件中:
credentials
trustpoint <self-signed-trustpoint-name>
-
对于启用加密信令的Cisco IOS dspfarm资源(会议、媒体终端点或转码),此文本将显示在配置文件中:
dspfarm profile 1 conference security
trustpoint <self-signed-trustpoint-name>
!
dspfarm profile 2 mtp security
trustpoint <self-signed-trustpoint-name>
!
dspfarm profile 3 transcode security
trustpoint <self-signed-trustpoint-name>
!
sccp ccm 127.0.0.1 identifier 1 priority 1 version 7.0 trustpoint <self-signed-trustpoint-name>
!
-
对于配置了加密信令的STCAPP端口,此文本将显示在配置文件中:
stcapp security trustpoint <self-signed-trustpoint-name>
stcapp security mode encrypted
-
对于安全模式下的思科统一通信网关服务API,此文本将显示在配置文件中:
uc secure-wsapi
ip http secure-server
ip http secure-trustpoint TP-self-signed-XXXXXXXX
-
对于SSLVPN,此文本将出现在配置文件中:
webvpn gateway <gw name>
ssl trustpoint TP-self-signed-XXXXXXXX
OR
crypto ssl policy <policy-name>
pki trustpoint <trustpoint-name> sign
-
对于ISAKMP和IKEv2,如果存在任何配置,则可能使用自签名证书(需要进一步分析配置以确定功能是否使用自签名证书与其他证书):
crypto isakmp policy <number>
authentication pre-share | rsa-encr < NOT either of these
!
crypto ikev2 profile <prof name>
authentication local rsa-sig
pki trustpoint TP-self-signed-xxxxxx
!
crypto isakmp profile <prof name>
ca trust-point TP-self-signed-xxxxxx
-
对于SSH服务器,请注意: 您极不可能利用证书对SSH会话进行身份验证。 但是,您可以通过检查配置来验证这一点。 您必须具有以下所有三行才能受到影响。
注释 2:如果使用用户名和密码组合将SSH连接到设备,则不会影响您。
ip ssh server certificate profile
! Certificate used by server
server
trustpoint sign TP-self-signed-xxxxxx
-
对于RESTCONF,此文本将出现在配置文件中:
restconf
! And one of the following
ip http secure-trustpoint TP-self-signed-XXXXXXXXX
! OR
ip http client secure-trustpoint TP-self-signed-XXXXXXXX
解决方法/解决方案
解决方案是将Cisco IOS或Cisco IOS XE软件升级到包含修复程序的版本:
- Cisco IOS XE软件版本16.9.1及更高版本
- 思科IOS软件版本15.6(3)M7及更高版本;15.7(3)M5及以上;或15.8(3)M3及更高版本
升级软件后,必须重新生成自签名证书并将其导出到任何可能需要其信任库中证书的设备。
如果无法立即进行软件升级,则有三种解决方法。
解决方法1 — 从第3部分证书颁发机构(CA)获取有效证书
从证书颁发机构安装证书。 常见CA包括: Comodo、RapidSSL、Thawte、Sectigo、GeoTrust、Symantec等。
使用此解决方法,Cisco IOS会生成并显示证书请求。然后,管理员复制请求并将其提交给第三方CA并检索结果。
注意:使用CA签署证书被视为安全最佳实践。此过程是本现场通知中的一种解决方法;但是,在应用此解决方法后,最好继续使用第三方CA签名证书,而不是使用自签名证书。
要从第三方CA安装证书,请完成以下步骤:
-
创建证书签名请求(CSR)。
Router# conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# crypto pki trustpoint TEST
Router(ca-trustpoint)# enrollment term pem
Router(ca-trustpoint)# subject-name CN=TEST
Router(ca-trustpoint)# revocation-check none
Router(ca-trustpoint)# rsakeypair TEST
Router(ca-trustpoint)# exit
Router(config)# crypto pki enroll TEST
% Start certificate enrollment ..
% The subject name in the certificate will include: CN=TEST
% The subject name in the certificate will include: Router.cisco.com
% The serial number in the certificate will be: FTX1234ABCD
% Include an IP address in the subject name? [no]: no
Display Certificate Request to terminal? [yes/no]: yes
Certificate Request follows:
-----BEGIN CERTIFICATE REQUEST-----
A Base64 Certificate is displayed here. Copy it, along with the ---BEGIN and ---END lines.
-----END CERTIFICATE REQUEST-----
---End - This line not part of the certificate request---
-
将CSR提交给第三方CA。
注意:将CSR提交到第三方CA并检索结果证书的过程因所使用的CA而异。有关如何执行此步骤的说明,请参阅CA的文档。
-
下载路由器的新身份证书和CA证书。
-
在设备上安装CA证书。
Router# conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# crypto pki auth TEST
Enter the base 64 encoded CA certificate.
End with a blank line or the word "quit" on a line by itself
-----BEGIN CERTIFICATE-----
REMOVED
-----END CERTIFICATE-----
Certificate has the following attributes:
Fingerprint MD5: 79D15A9F C7EB4882 83AC50AC 7B0FC625
Fingerprint SHA1: 0A80CC2C 9C779D20 9071E790 B82421DE B47E9006
% Do you accept this certificate? [yes/no]: yes
Trustpoint CA certificate accepted.
% Certificate successfully imported
-
在设备上安装身份证书。
Router(config)# crypto pki import TEST certificate
Enter the base 64 encoded certificate.
End with a blank line or the word "quit" on a line by itself
-----BEGIN CERTIFICATE-----
REMOVED
-----END CERTIFICATE-----
% Router Certificate successfully imported
解决方法2 — 使用IOS CA服务器生成新证书
使用本地Cisco IOS证书颁发机构服务器生成并签署新证书。
注意:本地CA服务器功能并非在所有产品上都可用。
Router# conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# ip http server
Router(config)# crypto pki server IOS-CA
Router(cs-server)# grant auto
Router(cs-server)# database level complete
Router(cs-server)# no shut
%Some server settings cannot be changed after CA certificate generation.
% Please enter a passphrase to protect the private key
% or type Return to exit
Password:
Re-enter password:
% Generating 1024 bit RSA keys, keys will be non-exportable...
[OK] (elapsed time was 1 seconds)
% Certificate Server enabled.
Router# show crypto pki server IOS-CA Certificates
Serial Issued date Expire date Subject Name
1 21:31:40 EST Jan 1 2020 21:31:40 EST Dec 31 2022 cn=IOS-CA
Router# conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# crypto pki trustpoint TEST
Router(ca-trustpoint)# enrollment url http://
:80
# Replace
with the IP address of an interface on the router
Router(ca-trustpoint)# subject-name CN=TEST
Router(ca-trustpoint)# revocation-check none
Router(ca-trustpoint)# rsakeypair TEST
Router(ca-trustpoint)# exit
Router# conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# crypto pki auth TEST
Certificate has the following attributes:
Fingerprint MD5: C281D9A0 337659CB D1B03AA6 11BD6E40
Fingerprint SHA1: 1779C425 3DCEE86D 2B11C880 D92361D6 8E2B71FF
% Do you accept this certificate? [yes/no]: yes
Trustpoint CA certificate accepted.
Router(config)# crypto pki enroll TEST
%
% Start certificate enrollment ..
% Create a challenge password. You will need to verbally provide this
password to the CA Administrator in order to revoke your certificate.
For security reasons your password will not be saved in the configuration.
Please make a note of it.
Password:
Re-enter password:
% The subject name in the certificate will include: CN=TEST
% The subject name in the certificate will include: Router.cisco.com
% Include the router serial number in the subject name? [yes/no]: yes
% The serial number in the certificate will be: FTX1234ABCD
% Include an IP address in the subject name? [no]: no
Request certificate from CA? [yes/no]: yes
% Certificate request sent to Certificate Authority
% The 'show crypto pki certificate verbose TEST' command will show the fingerprint.
解决方法3 — 使用OpenSSL生成新的自签名证书
使用OpenSSL生成PKCS12证书捆绑包,并将该捆绑包导入Cisco IOS。
LINUX、UNIX或MAC(OSX)示例
User@linux-box$ openssl req -newkey rsa:2048 -nodes -keyout tmp.key -x509 -days 4000 -out tmp.cer -subj
"/CN=SelfSignedCert" &> /dev/null && openssl pkcs12 -export -in tmp.cer -inkey tmp.key -out tmp.bin
-passout pass:Cisco123 && openssl pkcs12 -export -out certificate.pfx -password pass:Cisco123 -inkey
tmp.key -in tmp.cer && rm tmp.bin tmp.key tmp.cer && openssl base64 -in certificate.pfx
MIII8QIBAzCCCLcGCSqGSIb3DQEHAaCCCKgEggikMIIIoDCCA1cGCSqGSIb3DQEH
BqCCA0gwggNEAgEAMIIDPQYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIGnxm
t5r28FECAggAgIIDEKyw10smucdQGt1c0DdfYXwUo8BwaBnzQvN0ClawXNQln2bT
vrhus6LfRvVxBNPeQz2ADgLikGxatwV5EDgooM+IEucKDURGLEotaRrVU5Wk3EGM
mjC6Ko9OaM30vhAGEEXrk26cq+OWsEuF3qudggRYv2gIBcrJ2iUQNFsBIrvlGHRo
FphOTqhVaAPxZS7hOB30cK1tMKHOIa8EwygyBvQPfjjBT79QFgeexIJFmUtqYX/P
Cisco IOS或IOS XE路由器示例
Router# conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# crypto pki trustpoint TEST
Router(ca-trustpoint)# enrollment terminal
Router(ca-trustpoint)# revocation-check none
Router(ca-trustpoint)# exit
R1(config)#crypto pki import TEST pkcs12 terminal password Cisco123
Enter the base 64 encoded pkcs12.
End with a blank line or the word "quit" on a line by itself:
MIII8QIBAzCCCLcGCSqGSIb3DQEHAaCCCKgEggikMIIIoDCCA1cGCSqGSIb3DQEH
BqCCA0gwggNEAgEAMIIDPQYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQItyCo
Vh05+0QCAggAgIIDENUWY+UeuY5sIRZuoBi2nEhdIPd1th/auBYtX79aXGiz/iEW
验证新证书是否已安装:
R1#show crypto pki certificates TEST
Load for five secs: 5%/1%; one minute: 2%; five minutes: 3%
Time source is SNTP, 15:04:37.593 UTC Mon Dec 16 2019
CA Certificate
Status: Available
Certificate Serial Number (hex): 00A16966E46A435A99
Certificate Usage: General Purpose
Issuer:
cn=SelfSignedCert
Subject:
cn=SelfSignedCert
Validity Date:
start date: 14:54:46 UTC Dec 16 2019
end date: 14:54:46 UTC Nov 28 2030
更多信息
请参阅FN70489现场通知:FN - 70489 - Cisco IOS和Cisco IOS XE软件中的PKI自签名证书过期
参见CSCvi48253
自签名证书于2020年1月1日00:00 UTC到期,此后无法创建。
问答
问:问题是什么?
在运行受影响的Cisco IOS或Cisco IOS-XE版本的产品上生成的自签名X.509 PKI证书将于01/01/2020 00:00:00 UTC到期。在UTC之后,无法在受影响的设备上创建新的自01/01/202000:00:00证书。依赖于这些自签名证书的任何服务在证书到期后可能不再工作。
问:如果产品的自签名证书过期,对客户网络有何影响?
证书到期后,任何依赖自签名证书的受影响产品的功能可能不再起作用。有关其他详细信息,请参阅现场通知。
问:如何确定我是否受此问题的影响?
“现场通知”提供了确定您是否使用自签名证书以及配置是否受此问题影响的说明。请参阅现场通知中的“如何识别受影响的产品”部分。
问:是否有脚本可以运行,以查看我是否受到影响?
Yes.使用Cisco CLI Analyzer运行系统诊断。如果证书存在且正在使用,将显示警报。https://cway.cisco.com/cli/
问:思科是否为此问题提供了软件修复?
Yes.思科已针对此问题发布软件修复程序,并在软件升级不立即可行时发布解决方案。请参阅现场通知了解完整详细信息。
问:此问题是否影响使用证书的任何思科产品?
否。此问题仅影响使用自签名证书的产品,自签名证书由Cisco IOS或Cisco IOS-XE的特定版本生成。使用证书颁发机构(CA)生成的证书的产品不受此问题的影响。
问:思科产品是否仅使用自签名证书?
否。证书可由外部第三方证书颁发机构生成,也可以在Cisco IOS或Cisco IOS-XE设备本身作为自签名证书生成。特定客户要求可能导致选择使用自签名证书。证书颁发机构(CA)生成的证书不受此问题影响。
问:为什么会出现此问题?
遗憾的是,尽管技术供应商尽了最大努力,但软件缺陷仍然存在。当发现任何思科技术中的漏洞时,我们将致力于提高透明度,并为客户提供保护其网络所需的信息。
在这种情况下,问题是由已知软件Bug引起的,在此Bug中,受影响的Cisco IOS和Cisco IOS-XE版本始终将自签名证书的过期日期设置为01/01/2020 00:00:00 UTC。在此日期后,证书过期且无效,这可能会影响产品功能。
问:为什么选择2020年1月1日00:00:00 UTC的到期日期?
证书通常具有到期日期。如果出现此软件Bug,则2020年1月1日是10年前在Cisco IOS和Cisco IOS-XE软件开发期间使用的日期,这是人为错误。
问:哪些产品受此问题影响?
运行15.6(03)M07、15.7(03)M05、15.8(03)M03和15.9(03)M之前的Cisco IOS版本的任何思科产品以及运行16之前的Cisco IOS-XE版本的任何思科产品。9.1
问:客户需要做什么?
我们要求客户查看现场通知,以评估他们是否受此问题影响,如果受此影响,请遵循解决方法/解决方案说明来缓解此问题。
问:此问题是否是安全漏洞?
否。这不是安全漏洞,并且产品完整性不受任何风险影响。
问:SSH是否受到影响?
否。SSH确实使用RSA密钥对,但除非在罕见配置中,否则不使用证书。要使IOS使用证书,必须提供以下配置。
ip ssh server certificate profile
server
trustpoint sign TP-self-signed-xxxxxx
问:哪些固定版本可用于传统Catalyst 2K、3K、4K、6K平台?
对于基于Polaris的平台(3650/3850/Catalyst 9K系列),16.9.1以后提供修复
对于CDB平台,15.2(7)E1a以后提供修复
对于其他传统交换平台:
承诺正在进行中,但我们尚未发布CCO版本。下一个CCO版本将具有修复。
在中间,请使用其他可用的解决方法之一。
问:WAAS是否受到影响?
WAAS将继续正常运行并优化流量,但是,AppNav-XE和中央管理器将脱机到具有过期自签名证书的设备。这意味着无法监控AppNav集群或更改WAAS的任何策略。总之,WAAS将继续正常运行,但管理和监控将暂停,直到证书问题解决。 要解决此问题,需要在IOS上生成新证书,然后将其导入到Central Manager。