如何使用 SSL 和 Server 2008 作为 CA 来保护内部用户的内部网站?

如何使用 SSL 和 Server 2008 作为 CA 来保护内部用户的内部网站?

我需要一个有经验的人来指导我完成这个小项目:-)

我们有一个具有 Active Directory 证书服务角色的域控制器 [Win2k8 R2]。我们将其命名为 ServerOne.OurDomain.com。

我有第二台 Windows 2008 R2 服务器 ServerTwo.OurDomain.com,它运行 Apache Tomcat Web 服务器。我们正在为所有需要 SSL 连接到 OAuth 服务器的用户设置 Outlook 插件。我摸索着按照说明将 OAuth 模块添加到 Tomcat,并在端口 8443(Tomcat 的默认 SSL 端口)上使用 SSL 启用连接器。

但是现在我不知道如何“把 2 和 2 放在一起”——如何从我们的内部 CA 生成证书,以便在连接到 ServerTwo.OurDomain.com 时不会出现 SSL 证书错误?到目前为止,我使用 JRE“keytool.exe”程序在 ServerTwo 上创建了“密钥库”文件,当然证书会将其显示为没有 CA 链的自签名证书 [例如,当您单击浏览器中的锁定图标时]。

非常感谢在这方面提供的任何帮助。

答案1

我最终自己解决了这个问题。我记录了我的步骤;希望这能帮助将来遇到同样问题的人:

  1. 在 Tomcat 上生成 CSR

    • 创建密钥库和私钥:keytool -genkey -alias tomcat -keyalg RSA -keystore keystore
    • “Keytool”位于 Java 的 JDK 或 JRE 主目录的“bin”文件夹中
    • “keystore” 包括密钥库文件的路径,例如“C:\store\keystore”
    • 填写所要求的信息,注意“名字和姓氏”实际上是要求填写 FQDN
    • 创建 CSR 文件:keytool -certreq -keyalg RSA -alias tomcat -file certreq.csr -keystore keystore
    • [然后我复制到一个公共共享:] copy certreq.csr Z:\
  2. 签署证书

    • 在具有 Active Directory 证书服务角色的服务器上,在提升的命令提示符中:certreq -submit -attrib "CertificateTemplate: WebServer" Z:\certreq.csr certificate.cer
    • 在弹出窗口中选择你正在处理的 CA
    • [然后我将其复制回共享:] copy certificate.cer Z:\
  3. 导入根 CA 证书

    • 在具有 Active Directory 证书服务角色的服务器上:
    • 服务器管理器-->角色-->Active Directory 证书服务-->[您的 CA]-->已颁发的证书
    • 打开由您的 CA 签名的列表中的任意一个,转到“证书路径”选项卡
    • 如果根 CA 是您的服务器的 CA,则“查看证书”
    • 详细信息选项卡 --> 复制到文件... [然后我保存到 Z:\RootCA.cer]
    • 在 Tomcat 服务器上:
    • keytool -import -trustcacerts -alias rootca -file Z:\RootCA.cer -keystore 密钥库
    • 输入“yes”以信任该证书
  4. 导入 Tomcat 的证书

    • keytool -import -trustcacerts -alias tomcat -file Z:\certificate.cer -keystore 密钥库

参考:

请注意,如果此时您的浏览器仍然不相信它是由受信任的根 CA 签名的,则您可能必须通过组策略推出根 CA 服务器。。。对我来说,这是一个快速的 Google 搜索。我已经在执行这些步骤之前进行了设置,所以我不确定这是否重要。

答案2

因为您刚刚创建了一个自签名证书,所以由于您不是受信任的证书颁发机构,因此这不会自动进行身份验证。

最简单、最快捷的方法就是将证书安装到您本地的受信任证书存储中,但您需要在每台机器上执行此操作,因此这将非常耗时,并且当您一年后设置新机器并忘记执行此操作时会导致问题,因此更好的部署方法是使用 GPO。如果您已设置组策略,请按照说明进行操作这里

相关内容