我在欧洲旅行了几周,参加了思科欧洲直播大会,并与客户和合作伙伴会面。很明显,这个博客是非常需要我们讨论很多部署,以保证负载平衡的博客,我跟进一个博客如何“黑客”思科的证书标识服务引擎(ISE)节点,这样我们在主题选择可能包括条目名称(SAN)。
为什么我们需要这样做?
在很多情况下,您希望使用与其主机名不完全相同的DNS名称访问ISE。如果您曾经尝试通过IP地址访问https://网站,您很可能遇到过web浏览器争论证书名称不匹配,浏览器要求您接受警告以便继续。下面展示了一个示例。
Aaron Woland.
图1 - 名称不匹配
Cisco ISE有一些不同的门户网站,您可以连接到:
- 赞助商门户:HTTPS:// ISE:8443 / SponsorPortal /。此门户网站是您公司的员工登录和创建访客帐户。显然,告诉员工连接到此URL是非常繁琐的,并且需要一个友好的名称。
- MyDevices门户:HTTPS:// ISE:8443 / MyDevices /。此门户网站适用于贵公司的员工登录和管理他们被允许注册网络访问的个人设备。显然,告诉员工连接到此URL将非常繁琐,所以再次,将需要更友好的名称。
因此,ISE可以使用HTTP主机头来使用友好名称,并将目的地为该友好名称的流量重定向到正确的URL/端口。这是在管理/Web门户管理/设置/通用/端口下设置的。
Aaron Woland.
图2 -友好的名称
如果您要使用“hotspot.companyx.com”,它不会匹配ISE的Web Portals证书。证书只会匹配实际的主机名(例如:atw-cp-ise04.cisco.com)。这导致证书不匹配错误,并且用户体验将小于所需的。
我该如何解决这个问题?
标准X.509证书提供字段以允许证书匹配多个URL。这被称为Subject可选名称字段。可以使用其他DNS名称,其他IP地址等填充此证书字段。
使用主题备用名称字段将阻止证书错误。但是,Cisco ISE在生成证书签名请求(CSR)时不提供填充这些字段的能力,以发送到证书颁发机构以进行签名。
什么是“黑客”?
虽然ISE用户界面可能不能提供用它自己的证书签名请求(CSR)填充SAN字段的能力,但它仍然只是一个X.509证书,它是一个标准证书。为什么我们不直接从ISE导出公共和私有证书,然后使用OpenSSL生成CSR呢?
(注:我们已经在MAC-OS上尝试过了,因为它内置了OpenSSL,但它并不适合我们。我们在Windows和Linux上使用OpenSSL确实取得了成功。在这篇博客文章中,我将重点讨论OpenSSL的Windows实现。你可以从OpenSSL下载在这里)
让我们开始!
第1步:首先,您应该为ISE节点生成新的自签名证书。将关键长度设置为您所需的密钥长度(例如2048)。
Aaron Woland.
图3 -生成自签名证书
然后,您可以重新连接到ISE,它将使用新的证书。这里我正在查看新证书,只是向您展示一些字段。没有Subject Alternative Name字段,您可以看到下面的主题是CN=atw-cp-ise01.ise。local (ISE节点的fqdn)。
Aaron Woland.
图4 - 证书
第2步:从ISE出口公共和私人证书。默认格式是包含公共和私钥的.zip文件。在这种情况下:“atwcpise01iselocalatwcpis.zip”
Aaron Woland.
图5 -导出证书
第3步:提取zip文件并将.pem和.pvk文件复制到openssl二进制目录(c:\ program files(x86)\ gnuwin32 \ bin)。
第四步:为命名为openssl.cnf的openssl证书签名请求创建自定义配置文件。可以找到一个非常好的散步openssl.cnf文件在这里。
Aaron Woland.
图6 -配置举例
第5步:既然,您的openssl.cnf文件已准备好您的证书自定义,您将使用OpenSSL使用以下命令创建自定义CSR文件:
Openssl req -key [pvk_file.] - 新闻[csr_filename.] -config [your_openssl.cnf_file]
Aaron Woland.
图7 - 示例CLI
第6步:从CA申请新证书。在此示例中我使用了一个Microsoft CA。
Aaron Woland.
图8 - CA主界面
第七步:选择高级证书申请
Aaron Woland.
图9 - 高级请求
第八步:粘贴在步骤5中生成的证书请求文件的内容中。确保证书模板类型是“Web服务器”。
Aaron Woland.
图10 - CSR中的粘贴
第9步:在Base 64(PEM)格式中下载证书。有关最佳结果,请勿使用der格式,并不使用证书链。
Aaron Woland.
图11 - 下载证书
第10步:在“本地证书”下,选择“添加”,然后导入本地服务器证书
Aaron Woland.
图12 - 进口证书
第11步:将原始私钥和新CA签名公钥导入ISE。
- 对于证书文件,请选择您刚从CA下载的新CA签名证书。
- 对于私钥文件,选择您导出的原始私钥。
Aaron Woland.
图13 - 导入密钥对
步骤12:您的ISE节点现在将使用新的CA签名证书,其中包含Subject Alternative Names。
Aaron Woland.
图14 - 最终证书