使用来自 ca 的 server.crt 替换 server.crt 后 Apache2 服务器不会重新启动

使用来自 ca 的 server.crt 替换 server.crt 后 Apache2 服务器不会重新启动

我正在尝试启用 ssl(tls?)我遇到了这些错误,并且有这些问题。

  1. 为什么 Apache 没有重新启动?我该如何让它重新启动?用 start 替换 restart 不起作用。
  2. 跳过第三步是否会导致问题?如果是,我该如何完成第三步?
  3. 我实际上创建了一个新的 .csr 和 .key 文件(我对这些都不熟悉),并且使用了不同的名称。这会导致问题吗?现有的 .csr 和 .key 文件的名称与我创建的新文件不同。我是否应该用我创建的新文件替换旧的 .csr 和 .key 文件以获取 .crt 文件?我是否应该通过重命名我创建的新文件并将新文件添加到覆盖旧文件的目录中来替换旧的 .csr 和 .key 文件?

我遵循了以下步骤,可在此处找到

https://wiki.bitnami.com/Components/Apache#How_to_enable_HTTPS_support_with_SSL_certificates

我从我的 CA 获得了两个证书,其中一个被命名为随机字母数字字符串,例如 8d0g03k02K.crt,另一个使用通用英语命名,并在其中包含单词 bundle 点 crt。我所做的就是将随机字符串 server.crt 和包含单词 bundle 的文件重命名为 server-ca.crt。这两个文件都以 .crt 结尾

接下来,在 ftp 的帮助下,我将 /opt/bitnami/apache2/conf/ 中的 server.crt 文件替换为 .crt 文件,并将该文件从随机字母数字字符串重命名为 server.crt。我还上传了重命名为 server-ca.crt 的文件,该文件的文件名中包含了单词 bundle。

现在我尝试执行下面的第三步,但是当我打开 httpd.conf 时,我搜索 SSLCertificateKeyFile 以添加 /opt/bitnami/apache2/conf/server-ca.crt。httpd.conf 中没有 SSLCertificateKeyFile 字样。

然后我继续执行步骤 4 和 5,因为我不知道步骤 3 该做什么。

当我输入重新启动命令时,它开始重新启动,然后我收到错误 httpd 无法重新启动。

  1. 为什么 Apache 没有重新启动?我该如何让它重新启动?用 start 替换 restart 不起作用。
  2. 跳过第三步是否会导致问题?如果是,我该如何完成第三步?
  3. 我实际上创建了一个新的 .csr 和 .key 文件(我对这些都不熟悉),并且使用了不同的名称。这会导致问题吗?现有的 .csr 和 .key 文件的名称与我创建的新文件不同。我是否应该用我创建的新文件替换旧的 .csr 和 .key 文件以获取 .crt 文件?我是否应该通过重命名我创建的新文件并将新文件添加到覆盖旧文件的目录中来替换旧的 .csr 和 .key 文件?

以下是我遵循的说明:

默认情况下,您的应用程序托管在自定义域名的根目录下,例如托管在 https://my-domain.com/ 上的 Wordpress 博客

请按照以下步骤激活 SSL 支持:

1.使用下表来确定您的证书和配置文件的正确位置。


当前应用程序URL:https://[c ustom-domain]/ 例如:https://my-domain.com/

Apache 配置文件:/opt/bitnami/apache2/conf/bitnami/bitnami.conf

证书文件:/opt/bitnami/apache2/conf/server.crt

证书密钥文件:/opt/bitnami/apache2/conf/server.key

CA 证书包文件(如果存在):/opt/bitnami/apache2/conf/server-ca.crt


2.将您的 SSL 证书和证书密钥文件复制到指定位置。了解有关上传和编辑文件的更多信息。

注意:如果您对证书和密钥文件使用不同的名称,则应在相应的 Apache 配置文件中重新配置 SSLCertificateFile 和 SSLCertificateKeyFile 指令以反映正确的文件名。

3.如果您的证书颁发机构还为您提供了 PEM 编码的证书颁发机构 (CA) 包,则必须将其复制到上表中的正确位置。然后,修改 Apache 配置文件以在 SSLCertificateKeyFile 指令下方包含以下行。根据您的方案和 Apache 版本选择正确的指令:


Apache 配置文件:/opt/bitnami/apache2/conf/bitnami/bitnami.conf

要包含的指令(Apache v2.4.8+):SSLCACertificateFile“/opt/bitnami/apache2/conf/server-ca.crt”

要包含的指令(Apache <v2.4.8):SSLCertificateChainFile“/opt/bitnami/apache2/conf/server-ca.crt”

4.复制所有服务器证书文件后,您可以使用以下命令使它们仅可由 root 用户读取:

sudo chown root:root /opt/bitnami/apache2/conf/server*
sudo chmod 600 /opt/bitnami/apache2/conf/server*

5.重新启动 Apache 服务器。

sudo /opt/bitnami/ctlscript.sh restart apache

您现在应该能够使用 HTTPS URL 访问您的应用程序。

答案1

SSLCertificateKeyFile是 SSL 中最重要的部分。SSLCertificateKeyFile用于加密您发送给 Smith 先生浏览器的数据,因为他会将这些数据指向您的地址。Smith 先生的浏览器会使用SSLCertificateFile来解密流量,因此需要完全匹配SSLCertificateKeyFile(其次,Smith 使用它来防止中间人攻击,但那是另一个故事)。

Apache 在启动时会检查 .key 是否与 .crt 匹配,因此如果您没有密钥或密钥不匹配,它就无法启动。

您的说明只是部分说明。它遗漏了开头部分 - 作为第一步,您已生成了 .key 文件(甚至在您拥有任何 .crt 文件之前),现在您需要将其放入/opt/bitnami/apache2/conf/server.key并确保可以SSLCertificateKeyFile /opt/bitnami/apache2/conf/server.key进入。

因此请修复此问题,并按照说明添加 server-ca.crt。

您可能忽略了有关 .key 的关键一点,即您收到的 server.crt 仅在您拥有与生成的 .key 完全相同时才可用在同一过程中

生成流程如下:除了 .key 文件,你还生成了一个 .csr 文件。这两个文件相互匹配。接下来,一些公司将 .csr 文件转换为 server.crt 文件,该文件仍然与相同的 .key 匹配。而且只有这一个。.crt 才是真正对 SSL 有用的文件。

.csr 文件仅仅是您的认证机构需要的输入文件,他们会从中生成 .crt 文件,您不需要将它用于实际的 SSL 连接。

答案2

打开SSH终端 步骤1 cd /opt/bitnami/apache2/conf/

第2步

删除或重命名此目录中现有的 server.crt 和 server.key 文件(我更喜欢将它们重命名为 server.crt_legacy 和 server.key_legacy

sudo mv 服务器.crt 服务器.crt_legacy

sudo mv 服务器.key 服务器.key_legacy

步骤3

在其位置创建两个新文件:

sudo touch 服务器.crt

sudo touch 服务器密钥

相关内容