当我们在版本1.3中添加了思科的ISE证书颁发机构(CA)时,该领域的巨大兴趣级别。公司正在寻找此功能,使来自端点的Byod和安全的网络访问更安全,并且有很多关于此功能的嗡嗡声。
作为飞行世界各地的人的家伙携带“国旗”,在ISE中携带“旗帜” - 强迫我的信息到所有的高管上,我可以找到为什么它如此重要,我自然欣喜若狂,看看我的成功自成立以来的冠军和培养。
然而,与一切一样,总需要更多!ISE管理员全世界都认为它对于能够船上的设备非常重要,但他们需要向无法通过自动化车载过程的设备发出端点证书,例如医疗设备,销售点系统,Linux, 等等。
“制作它” - Jean-Luc Picard
在ISE 1.4中,我们为CA添加了一个RESTFUL(代表状态转移)API,以发出私钥+公共证书对。此博客文章致力于向您展示如何利用该restful API,并为无法使用Byod oneBoaring进程的自动配置功能的设备生成您自己的证书。
我们的小型摇滚明星的主要团队成员之一是负责这个CA的主要团队成员。Victor是我将在这篇博客中向您展示的原始作者。谢谢,维克多!
Val Kilmer,顶枪
维克多阿什
您可以(当然)构建一个完整的Web门户,它利用此API为组织中的人们生成证书。但是,我将向您展示如何使用卷曲的任何Linux或Mac设备上的简单脚本进行此操作。您可能会使用它与Windows设备一起使用Windows for Windows,但我不想这样做 - 所以它不会成为博客的一部分:)
让我们开始吧
There are many tools available for REST so please bear in mind, there’s a reason we are using curl instead of a browser based REST Client, like Poster, Postman, etc. The browser-based clients just spit back the response body as text, and aren’t smart enough to treat this as a file and let you download it.
您将在Linux / Mac工作站上创建两个文件。一个我们将调用Request.sh,另一个将被称为有效载荷。Request.sh脚本包含卷曲命令,将信息放入API以检索证书对。有效载荷文件包含您尝试生成的证书的详细信息。
Request.sh.:
curl -x put-h“授权:基本yxbpdxnlcjpoaxnwyxnzd29yza ==”-h“accept:application / vnd.com.cisco.ise.ca.endpointCert.1.0 + XML; charset = UTF-8”-h“内容类型:application / vnd.com.cisco.ise.ca.endpointCert.1.0 + XML; charset = UTF-8“--data @payload -v - linsecurehttps://
有效载荷:
<?XML版本=“1.0”编码=“UTF-8”独立=“是”?>
<进入>
<值> 11-22-33-44-55-66 value>
entry>
<进入>
entry>
cercereteRequest>
<格式> PKCS12 格式>
<密码> Cisco123 密码>
ns3:endpointcert>
生成的zip文件(或故障时的任何错误消息)将显示在一个调用的文件中结果。所以,如果响应状态不是200 OK(也许400个不好的请求)那么结果文件将只是文本文件,因此在文本编辑器中打开它以查看错误消息。
请求中需要接受和内容类型标头(如上所示),它们具有相同的值。这在文档页面上显示(如下所述)。授权标题是基本访问权限标题。此标题的值应该是:
“用户名:密码”的基本
对于基数64编码,您可以转到像这样的网站https://www.base64encode.org/(如图2所示)并转到顶部的“编码”选项卡。输入您的用户名和密码,由冒号分隔(例如,atmiuser:hispassword),然后点击编码按钮。你会得到像yxbpdxnlcjpoaxnwyxnzd29yza ==这样的东西。然后,您对“授权”标题的值将是“基本yxbpdxnlcjpoaxnwyxnzd29yza ==”这在curl命令中看到。
base64encode.org.
图1 - Base64编码器
在使用脚本之前,您需要在ISE部署中启用ERS。导航:管理>系统>设置> ERS设置。在图2中看到的主管理节点上的启用ers。别忘了点击保存。
Aaron T.Woland.
图2 - 使能器
此页面还将向ERS文档显示一个URL。URL应该是https://
此文档页面有很多信息。最有用的页面应该是:
快速参考>设置
快速参考>请求标题
API文档>终点证书
除了启用ERS API之外,您还需要一个ers管理级别用户。导航:管理>系统>管理员访问>管理员>管理员。点击添加并设置一个类似于图3中的ID管理员用户。别忘了点击保存。这是需要将其转换为Base64并插入Request.sh脚本的用户名和密码。
Aaron T.Woland.
图3 - Ersadmin
您还需要一个用于CA的证书模板。您可以使用的所有ISE 1.3安装名为“EAP_AUTHENTING_CERTICE_TEMPLATE”的内置证书模板,或者您可能希望为环境创建自己的全新模板。
图4显示了我正在使用此博客文章的自定义模板。您必须在CertTemplateName部分中的有效载荷文件中指定模板名称。
Aaron T.Woland.
图4 - 自定义模板
让我们通过一个例子
我创建了一个名为Request.sh的文件。此文件的内容如图5所示。
Aaron T.Woland.
图5 - 请求.sh
我还创建了一个名为payload的文件。内容如图6所示。
Aaron T.Woland.
图6 - 有效载荷
我现在运行Request.sh文件,如图7所示。
Aaron T.Woland.
图7 - 脚本输出
图8显示了结果的zip文件和提取的证书链(p12文件)。
Aaron T.Woland.
图8 - 结果钥匙串
再次,我要感谢Val Kilmer,错误......我的意思是Victor Ashe,为脚本和辉煌的ISE CA团队为所有持续的努力工作和顶级交付。