Zor*_*che 16 windows openssl ssl-certificate certificate-authority
我想为我的域设置企业证书颁发机构。所以我可以为各种目的颁发证书。我想遵循将离线 CA 作为根的最佳实践,并将我的企业 CA 设置为从属。但是,为这项任务授权 Windows 的完整副本似乎很愚蠢。
我希望能够做的是在 USB 闪存盘上安装一些实时发行版,然后安装 openssl,并在闪存驱动器上设置我的 CA。当我准备好构建根密钥/证书时,我将断开计算机与网络的连接,然后再不在网络连接的计算机上使用该 USB 磁盘。
我是否能够为 Windows 企业 CA 正确签署和创建从属 CA 证书,这将是可用的。我需要与 OpenSSL 一起使用哪些选项来构建 CA 并正确签署从属 CA 证书。
我试图在网上搜索,这是我在这个主题上唯一能找到的东西。但它早于 2008 年,我不完全确定这个人是否成功。
Sha*_*den 14
是的,它工作得很好;Windows 证书颁发机构对于作为非 Windows 根目录的从属运行没有任何顾虑。
在企业模式下使用 OpenSSL 根和 Windows 2008 R2 从属进行测试。
MS CA 在 OpenSSL 配置中所期望的一些事情可以很好地发挥作用:
有效的 AIA 和 CDP 位置应应用于根证书,在由自签名根部分的x509_extensions
属性配置的[req]
部分中。沿着这些路线的东西:
authorityInfoAccess = caIssuers;URI:http://test-rootca.test.local/root.pem
crlDistributionPoints = URI:http://test-rootca.test.local/root.crl
Run Code Online (Sandbox Code Playgroud)默认情况下,给定的 OpenSSL 配置可能不允许从属 CA。为已签名的请求更改它(当然,确保不应该是 CA 的请求)。这将在由该部分的x509_extensions
属性配置的[ca]
部分中:
basicConstraints=CA:TRUE
certificatePolicies=2.5.29.32.0
Run Code Online (Sandbox Code Playgroud)所以,我们将做一个 CA 来测试。
让你的根:
openssl req -new -x509 -keyout /etc/ssl/private/root.key -out /etc/ssl/certs/root.pem -nodes -extensions v3_ca
Run Code Online (Sandbox Code Playgroud)
摆弄您的配置并在[ca]
您的 OpenSSL 配置部分创建必要的文件和目录。
一切都准备好让微软的一面继续前进;创建一个带有手动签名的 Windows 从属 CA。
将证书请求上传到 OpenSSL 服务器。在此期间,下载根证书。将其导入受信任的根存储 - 计算机的,而不是您的用户!
颁发从属证书:
openssl ca -in test-subca.req
(you might need to specify a permissive policy manually with -policy, check your config)
Run Code Online (Sandbox Code Playgroud)
如果这不起作用,您的 CA 可能有配置问题 - 新证书目录、索引文件、串行文件等。检查错误消息。
如果去了,那就这样了。如果没有,请制作一个 CRL 并将其放入您上面配置的 CDP 中;我刚刚安装了 Apache 并将其卡在 webroot 中:
openssl ca -gencrl -out /var/www/root.crl
Run Code Online (Sandbox Code Playgroud)
并将您的证书放在 AIA 位置(如果还没有):
cp /etc/ssl/certs/root.pem /var/www/root.pem
Run Code Online (Sandbox Code Playgroud)
下载新颁发的从属证书,并使用证书颁发机构 MMC 管理单元将其安装到 CA。它会抱怨任何与信任或验证有关的问题,但它对接受它没有道德上的反对。
最终结果; 一个工作的 Windows CA,没有来自企业 PKI 管理单元的抱怨OpenSSL Generated Certificate
,在属性中有一个指示。
我明白你的意思,但我不认为 OpenSSL 是完成这项工作的工具。您可能想查看开源证书颁发机构项目,例如EJBCA,它比 OpenSSL 更关注此功能,并且有您可以使用的特定文档。
我看不出这个概念行不通的原因,因为您所做的只是签署从属 CA 的证书。如果您支付公共 CA 来为您执行此操作,则您不一定知道或关心他们使用的服务器类型。
您需要关心的是:
我不能说我已经这样做了,但我确信如果您按照文档从 Windows 框中生成 CSR,然后按照您的 CA 文档从 CSR 生成 .p7k 证书,那么您应该没问题。
顺便说一句 - 我建议您将 CA 创建为流行的虚拟机管理程序(例如 Hyper-V 或 VMware)的虚拟机,而不是引导磁盘,请确保将它非常安全地存储在您的继任者可以找到的地方,然后旋转它定期离线以确保其运行,或将其转移到新媒体/技术。一个根 CA 可能有 10 年或 20 年的寿命......
归档时间: |
|
查看次数: |
7084 次 |
最近记录: |