我们有一个内部项目需要允许基于 USB 令牌的身份验证。我们设法了解了它的工作原理,以及如何设置我们的环境(Apache、HTTPS 支持、在浏览器中请求 SSL 验证的证书、从证书识别用户)。
我们大多是在学习之后http://cweiske.de/tagebuch/ssl-client-certificates.htm
现在我们面临的问题是无法生成有效的证书。在项目的这个阶段我们无法购买它们。我们都是开发人员,我们需要测试不同的场景。为了能够构建应用程序登录系统,我们需要生成或模拟工作环境。
- 这意味着我们需要验证证书是否有效。
- 证书包含我们所需的唯一ID,例如持有者的姓名和电子邮件。
- 在不同的 CA 授权文件下颁发的证书可以具有相同的序列号。
- 证书可以包含多个链,我们需要生成多个有效/失败的链。
- 证书可能已过期(可能是最容易做到的)
- 证书可以被撤销。
我们可以做些什么来设置一个包含有效 CA 文件、有效证书、过期证书以及更重要的是已撤销证书的整个沙盒环境,因为我们需要根据 OCSP 检查证书是否被撤销。
您将如何设置这样的开发环境来内部测试这些?我们可以使用哪些工具来简化我们的任务?
答案1
openssl
和一些 shell 脚本应该就足够了。您可以生成本地信任的 CA 证书/密钥,用它们签署 CSR,撤销它们,以及所有其他操作。还有预构建的 CA 管理 GUI 和命令行工具集,但难点在于理解这一切是如何工作的(考虑到您想要做的不是标准用例,您将需要了解底层工作原理)。执行所需转换的机制很简单。