我想为我的域设置一个企业证书颁发机构。 所以我可以为各种目的颁发证书。 我想遵循将脱机CA作为根的最佳实践,并将我的企业CA设置为下属。 但是,为了完成这个任务,许可Windows的全部副本似乎很愚蠢。
我希望能够做的是安装一些实时分发到USB闪存盘上,然后安装openssl,并将我的CA安装在闪存驱动器上。 当我准备build立根密钥/证书时,我将断开计算机与networking的连接,然后再次不要在networking连接的计算机上使用该USB硬盘。
我能否为Windows企业级CA正确签署和创build从属CA证书,这将是可用的。 我需要使用哪些选项与OpenSSL构buildCA并正确签署从属CA证书。
我试图搜查networking, 这是我能find的唯一的主题。 但是,它早于2008年,我不完全确定这个人是成功的。
是的,它工作得很好。 Windows证书颁发机构对作为非Windows根目录的下级运行毫无疑问。
在企业模式下使用OpenSSL根目录和Windows 2008 R2下属进行testing。
有几件事情可以和MS CA在OpenSSLconfiguration中所期望的一致:
有效的AIA和CDP位置应该应用于根证书,位于自签名根的[req]部分的x509_extensions属性configuration的部分。 沿着这些线路的东西:
authorityInfoAccess = caIssuers;URI:http://test-rootca.test.local/root.pem crlDistributionPoints = URI:http://test-rootca.test.local/root.crl
给定的OpenSSLconfiguration默认情况下可能不允许从属CA. 更改已签名的请求(确保这不适用于不应当是CA的请求)。 这将在[ca]部分的x509_extensions属性configuration的部分中:
basicConstraints=CA:TRUE certificatePolicies=2.5.29.32.0
所以,我们会做一个CA来testing。
让你的根:
openssl req -new -x509 -keyout /etc/ssl/private/root.key -out /etc/ssl/certs/root.pem -nodes -extensions v3_ca
摆弄你的configuration,在OpenSSLconfiguration的[ca]部分创build必要的文件和目录。
所有的事情都是为了让微软的事情走上正轨。 使用手动签名创buildWindows从属CA.
将证书请求上传到OpenSSL服务器。 当你在这里,下载根证书。 将其导入到计算机的可信根存储区中,而不是您的用户!
颁发下属证书:
openssl ca -in test-subca.req (you might need to specify a permissive policy manually with -policy, check your config)
如果这样做不起作用,那么你的CA可能在config-new证书目录,索引文件,串行文件等等方面有问题。检查错误信息。
如果它走了,就是这样。 如果你还没有,那么做一个CRL并把它放在你上面configuration的CDP中; 我刚刚安装了Apache,并将其卡在webroot中:
openssl ca -gencrl -out /var/www/root.crl
把你的证书放在友邦保险的位置,如果还没有的话:
cp /etc/ssl/certs/root.pem /var/www/root.pem
下载新颁发的下级证书并将其安装到具有证书颁发机构MMCpipe理单元的CA. 它会抱怨信任或validation的任何问题,但没有道德上的反对意见。
最终结果; 一个正在工作的Windows CA,没有企业PKIpipe理单元的抱怨,在属性中有一个指示性的OpenSSL Generated Certificate 。

我看到你在做什么,但我不认为OpenSSL是完成这项工作的工具。 您可能想看看比OpenSSL更关注此function的开放源代码authentication中心项目 (如EJBCA) ,并且可以使用特定的文档。
我不认为这个概念不起作用的原因,因为你所做的只是签署从属CA的证书。 如果你付了一个公共的CA来为你做这件事,你不一定会知道或关心他们使用的是什么服务器。
所有你需要关心的是:
我不能说我已经这样做了,但是我确定如果你按照文档生成一个窗口框中的CSR,然后按照你的CA文档从CSR生成一个.p7k证书,那么你应该没问题。
顺便说一句 – 我build议你创build你的CA作为虚拟机,如Hyper-V或VMware等虚拟机,而不是启动磁盘,确保你把它存储在你的后继者可以find它的地方,然后旋转它定期离线以确保其运行,或将其转移到新的媒体/技术。 根CA可能有10年或20年的寿命…