由于从win10开始系统强制要验证证书的有效性,某些安装了思科anyconnect客户端会提示证书无效,或者证书颁发机构和CN不一致,或者证书不受信任等问题。这里我们通过一系列操作来解决这些问题。下图是其中一个报错截图。
思科anyconnect vpn客户端关于证书的报错一般包括如下3种:
1、证书无效
2、证书名称不一致
3、证书不受信任
一般中小公司的做法通常是有一个固定ip的专线出口连接防火墙或者路由器,并不会去申请注册一个域名,也不会去公共CA机构去申请证书,因为上述2种操作都每年都需要续费。常见的做法AD域是公司内部域名,然后网站托管给第三方运营;证书颁发机构一般使用内网的微软服务器搭建,或者设备自签发证书,用于内部用途。
然而上述这种情况下如果使用思科防火墙或者路由器配合使用anyconnect vpn ,设备使用自签名证书,保持默认参数不变的话,证书的CN和FQDN默认就会使用hostname.domain name的格式。这样当客户端下载过来证书,要去证书颁发机构核验证书的时候会发现该域名无法在公共互联网上解析,因为公司内部的域名并没有在互联网上注册。
所以在设备自签发证书的时候以思科ASA防火墙为例(使用ASDM,定位到证书管理页面,点击新增自签发证书),这里的CN(common name)应该填写设备外网的企业专线的IP地址,而不应该是系统默认的设备的hostname,客户端虽然不能解析公司内部域名,却可以到达专线IP地址。
此外,由于客户将使用证书的FQDN来对证书的办法机构进行认证,所以这里应该接着点上面那个菜单的Advanced...,将这里的FQDN值改为设备外网的企业专线的IP地址,而不应该使用设备系统默认的hostname.domain name的格式(互联网无法解析)
最后设备自签发证书完成以后,需要到anyconnect vpn界面选择该证书用途为设备通用。(记住证书是有用途的,用途不同,客户端也会报错)
这样就不会报证书无效的错误,因为公网IP客户端是可以解析的,然后客户端去证书颁发机构查询该证书是否有效的时候(时间 用途 颁发给谁)就能够找到证书办法机构,从而验证证书的有效性。并且使用FQDN也避免了证书名称和设备hostname不一致的问题。
针对不受信任的证书问题,处理办法是将设备的自签名证书的公钥导出到文件,记住只需要导出公钥。
将导出的公钥,通过域控组策略下发到受信任的根证书颁发机构,或者直接本地导入的方式,让客户端信任该设备,就能避免每次跳弹窗的提示,导入后如下图。