在 Apache Windows Server 2012 R2 上安装 SSL 证书

在 Apache Windows Server 2012 R2 上安装 SSL 证书

我是一名开发人员。我们的服务器管理员给了我 3 个文件。.cer、.pfx 和 .p7b,并告诉我在 Apache 服务器中安装 SSL。我的 Wamp 版本是 Apache 2.4.9。我搜索了一下,找到了一些东西。我打开 httpd.conf 文件并搜索 DocumentRoot。在 DocumentRoot 之后,我添加了:

DocumentRoot "c:/wamp/www/"

SSLEngine on

SSLCertificateFile C:/Path/MyCer.cer

SSLCertificateKeyFile C:/Path/MyPfx.pfx

SSLCACertificateFile C:/Path/MyP7b.p7b

现在,当我重新启动 Apache 时。我甚至无法在 http 上导航服务器。当我注释掉以上几行时,我的网站可以在 http 上运行。

答案1

虽然这不完全是一个“问题”,而且您没有指定文件内的内容,但您至少做错了一件事:pfx 文件(假设这不是命名错误)不能直接用作 Apache 中的“密钥”。在不知道 cer 和 p7b 文件的内容的情况下,我们假设 pfx 包含我们需要的所有信息,并且您有 pfx 密码(您有,对吗?),然后从那里开始。

  1. 获取并安装适用于 Windows 的 OpenSSL(建议:https://indy.fulgan.com/SSL/如果你不愿意从源代码构建,那么已经预编译了二进制文件http://www.openssl.org/

  2. 从 pfx 中提取 Apache 所需的不同文件(需要时系统会提示您输入 pfx 密码):

    a. 从 pfx 中提取 SSL 证书私钥(加密)

    C:\Path> openssl pkcs12 -in MyPfx.pfx -nocerts -nodes -out MyEncKey.key

    b. 从 SSL 证书私钥中删除加密

    C:\Path> openssl rsa -in MyEncKey.key -out MyKey.key

    c.从 pfx 中提取 SSL 证书

    C:\Path> openssl pkcs12 -in MyPfx.pfx -clcerts -nokeys -out MyCert.cer

    d. 从 pfx 中提取(可能为空的)CA 证书链

    C:\Path> openssl pkcs12 -in MyPfx.pfx -nodes -nokeys -cacerts -out MyCAs.crt

  3. 使用这些行而不是您自己的行来重建您的 httpd.conf(注意:如果 MyCAs.crt 不为空,则仅包含 SSLCACertificateFile 行;您可以使用任何文本编辑器检查它)

  SSLCertificateFile C:/Path/MyCert.cer
  SSLCertificateKeyFile C:/Path/MyKey.key
  SSLCACertificate文件 C:/Path/MyCAs.crt

答案2

您的 SSL 证书将在 HTTPS 端口即 443 上运行,您需要将流量从 Http 重定向到 HTTPS,对于 Apache,您需要前往 MMC 放置您的证书,然后验证该证书。

相关内容