MS证书服务可以从属于使用OpenSSL创建的CA吗


16

我想为我的域设置企业证书颁发机构。因此,我可以出于各种目的颁发证书。我想遵循以脱机CA为根的最佳实践,并将企业CA设置为从属。但是,为此任务授权Windows的完整副本似乎很愚蠢。

我希望能够做的是将一些实时分发安装到USB闪存盘上,然后安装openssl,并在闪存驱动器上设置我的CA。当我准备构建根密钥/证书时,我将断开计算机与网络的连接,然后再也不要在连接网络的计算机上使用该USB磁盘。

我将能够为Windows企业CA正确签名并创建从属CA证书,该证书将可用。我需要与OpenSSL一起使用哪些选项来构建CA并正确签署从属CA证书。

我试图在网上搜索,是我唯一可以找到的主题。但这要早于2008年,我不确定这个人是否成功。


需要明确的是,该工具不一定必须是OpenSSL,但我不想运行像EJBCA这样的大型CA。我正在寻找可以在livecd / liveusb环境中运行的非常轻巧的CA。
Zoredache

Answers:


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
    
  • 默认情况下,给定的OpenSSL配置可能不允许从属CA。更改已签名请求的数量(当然,对于那些不应该是CA的请求,请确保该位置不正确)。这将在该部分的x509_extensions属性所配置的[ca]部分中:

    basicConstraints=CA:TRUE
    certificatePolicies=2.5.29.32.0
    

因此,我们将进行CA测试。

扎根:

openssl req -new -x509 -keyout /etc/ssl/private/root.key -out /etc/ssl/certs/root.pem -nodes -extensions v3_ca

弄弄您的配置,并在[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)

如果那不起作用,则说明您的CA可能与配置有关-新的certs目录,索引文件,串行文件等。请检查错误消息。

如果成功了,那么就是这样。如果还没有,请制作一个CRL并将其放入上面配置的CDP中;我刚安装了Apache并将其卡在webroot中:

openssl ca -gencrl -out /var/www/root.crl

如果还没有,请将您的证书放在AIA位置:

cp /etc/ssl/certs/root.pem /var/www/root.pem

下载新发行的从属证书,然后使用证书颁发机构MMC管理单元将其安装到CA。它会处理有关信任或验证的任何问题,但是在道德上并不反对。

最终结果; 正常运行的Windows CA,而Enterprise PKI管理单元没有任何抱怨,并且OpenSSL Generated Certificate属性中有一个提示。

工作ca


6

我明白了您的意思,但我认为OpenSSL并不是完成这项工作的工具。您可能想要查看诸如EJBCA之类的开源证书颁发机构项目,该项目比OpenSSL更着重于此功能,并且具有可以使用的特定文档。

我看不出这个概念行不通的原因,因为您所做的只是签署从属CA的证书。如果您要付费使用公共CA为您执行此操作,则不必知道或关心他们使用哪种服务器。

您需要关心的是:

  • 您可以从下属生成的CSR中签署证书
  • 结果可以安装在下属本身上
  • 您有一个根签名证书,可以将其安装为可信任的目标客户端
  • 您可以生成在某处提供的吊销列表

我不能说我已经做到了,但是我可以确定,如果您遵循从Windows框生成CSR的文档,然后遵循CA文档从CSR生成.p7k证书的文档,那么您应该还可以。

顺便说一句-我建议您将CA创建为适用于Hyper-V或VMware等流行的虚拟机管理程序的虚拟机,而不是启动磁盘,并确保将其安全地存储在后继者可以找到它的位置,然后旋转它定期离线以确保其运行,或将其转移到新的媒体/技术中。根CA的寿命可能为10或20年。


+1 OpenSSL并不是创建CA的主要工具,但它确实可以正常工作。我还没有为Windows Enterprise CA颁发sub-CA证书,但无法想象为什么它不起作用(尽管MS过去曾犯下更加严重的反竞争行为)。CA作为VM的大+1。保留第二份根证书是一个好主意(Base64在纸上非常耐用,易于保存在保险箱/保管箱等中)
Chris S

当我意识到我可以不用任何NIC设置虚拟机,而只是使用一个虚拟软盘驱动器来启动CSR和签署证书时,我感到非常高兴。Sneakernet焕发着21世纪的虚拟光芒!
dunxd 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.