Authentication 如何为需要客户端身份验证的IIS站点生成模拟智能卡的证书

Authentication 如何为需要客户端身份验证的IIS站点生成模拟智能卡的证书,authentication,iis,client,makecert,cac,Authentication,Iis,Client,Makecert,Cac,我有一个项目,这是一个网站认证的智能卡(国防部CAC)。我需要制作多个测试证书,站点可以使用这些证书对会话进行客户端身份验证。用户可以选择使用非智能卡的证书进行客户端身份验证 我觉得这样说很舒服,因为当我在MacBook上访问我的开发网站时,它向我展示了2个苹果证书。这些都不起作用,因为我们的身份验证过程要求在公共名称的末尾有一个简短的数字序列 我已经尝试了很多不同的方法,我根本无法创建一个证书,当我访问该站点时,它会与我的国防部CAC证书一起显示。在证书管理器中,Mac证书、文档CAC和我的测

我有一个项目,这是一个网站认证的智能卡(国防部CAC)。我需要制作多个测试证书,站点可以使用这些证书对会话进行客户端身份验证。用户可以选择使用非智能卡的证书进行客户端身份验证

我觉得这样说很舒服,因为当我在MacBook上访问我的开发网站时,它向我展示了2个苹果证书。这些都不起作用,因为我们的身份验证过程要求在公共名称的末尾有一个简短的数字序列

我已经尝试了很多不同的方法,我根本无法创建一个证书,当我访问该站点时,它会与我的国防部CAC证书一起显示。在证书管理器中,Mac证书、文档CAC和我的测试证书在“预期用途”字段中显示“客户端身份验证”。我还拥有自签名证书,用作可信根中测试证书的CA

国防部证书在“预期用途”字段中有“智能卡登录”和“客户验证”。使用makecert.exe时,我只能指定1个eku,因此我可以使用“客户端身份验证”或“智能卡登录”值生成证书,但不能同时使用这两个值。我只需要将证书设置为“客户端身份验证”,这似乎是合乎逻辑的

接下来,我将尝试使用certreq,阅读一些暗示我可以使用它为预期目的设置多个值的内容


我如何制作网站允许我选择的自己的客户机身份验证证书?

我在这里维护了一个批处理文件:它制作了一个用于测试目的的简单PKI

我为windows机器制作了它,但是你应该能够修改它,在mac上工作,只需做一些小的改动(基本上从command.com切换到sh)

它使用OpenSSL来实现这一点,在它创建的证书集中有一个客户端身份验证证书

要将证书导入mac,您需要将证书和密钥转换为PKCS#12文件

通过查看openssl.cnf文件,可以轻松更新脚本创建的证书配置文件

希望这有帮助