我们的网站有一个内部测试版本,可通过内部 DNS 区域访问,网址为 www.mysite.com.test
我想为 www.mysite.com.test 创建一个 SSL 证书,以便我们的测试人员不会收到无效证书警告(“真实”证书绑定到 www.mysite.com)
我知道如何使用 OpenSSL 创建自签名证书,但我想知道是否有某种方法可以将证书颁发机构与我们的 Active Directory 域关联起来,以便域成员 PC 上的任何用户都可以接受自签名证书,而无需明确安装它(或明确安装自签名证书颁发机构作为受信任的颁发机构)
有任何想法吗?
答案1
您可以通过组策略添加受信任的根。因此,请制作一个自签名证书,将其作为受信任的根推出,然后您用它签名的任何证书都将受到信任。
Policy Object Name/Computer Configuration/Windows Settings/Security Settings/Public Key Policies/Trusted Root Certification Authorities
无需设置 MS 证书颁发机构
答案2
如果您有一台运行 AD CS 角色的服务器颁发证书,那么它就不再是自签名的,而是由您的内部 CA 颁发的。要回答更大的问题,是的,您可以这样做。您必须安装 Active Directory 证书服务角色并从那里创建/分发证书。此用例无需接触 OpenSSL。
答案3
准确回答您的问题:不,您不能使用 Active Directory 创建自签名证书。但是,我认为您的问题混淆了不同的东西。
- 自签名证书不是由权威机构颁发的(这就是为什么它们自己签)
- 您可以将证书颁发机构与 Active Directory 集成,以自动化服务器和用户证书。
要创建自签名证书,您有很多选择。如果您是 Windows 商店,最简单的方法是通过 IIS 进行创建(请参阅:http://technet.microsoft.com/library/cc753127%28WS.10%29)。您还可以使用 OpenSSL(相当混乱但有效)、.NET SDK 附带的 makecert.exe 工具或许多类似的工具来完成此操作(我为此使用自己的工具,但这只是我个人的看法)。
要将 CA 与 AD 集成,最简单的方法是在机器上安装证书服务角色并将其配置为与 AD 集成(尽管在您的情况下,除非您想将其用于其他用途,否则这似乎不是必需的)。
最后,您可能希望创建自己的未与 AD 集成的根。除非您必须使用客户端证书身份验证,拥有许多不同的服务器(具有不同的名称)用于测试(可能用于自动测试),或者您希望能够测试使用特殊证书属性或链接的应用程序的某些方面,否则可能不值得这么麻烦。
在你的情况下,假设我理解正确,你想要做的就是用证书测试你的网络应用程序,我要做的就是生成一个自签名证书(使用你最喜欢的任何工具),然后在你的测试机器上的正确存储中安装该证书(以避免证书警告和错误)
答案4
我可以使用 Active Directory 作为 CA 创建自签名 IIS 证书吗?
不,你不能。很简单——AD 不是 CA。就这么简单。
WIndows 有一个可以安装的 CA 组件,但它不是 AD。它是一个独立的角色。但是,一旦你这样做了 - 为什么要使用自签名证书呢?