在 Ubuntu Apache2 上设置 Go Daddy SSL 时出错

在 Ubuntu Apache2 上设置 Go Daddy SSL 时出错

我对 Linux 还很陌生,正在尝试从 Go Daddy 配置 SSL。我按照有关如何生成密钥以发送给 Go Daddy 以获取证书的说明进行操作。以下是我遵循的指南: http://support.godaddy.com/help/article/5269/generating-a-certificate-signing-request-csr-apache-2x?pc_split_value=1

对于密码,我只是在提示符下按回车键,没有指定任何密码。他们颁发了证书,我已经在 apache2 服务器上设置了虚拟主机。我使用 apache 启用了 modSSL。这是我重新启动 apache 时收到的日志:

[Fri Aug 24 02:32:37 2012] [notice] Apache/2.2.17 (Ubuntu) PHP/5.3.5-1ubuntu7.10 with Suhosin-Patch mod_ssl/2.2.17 OpenSSL/0.9.8o configured -- resuming normal operations

我设置了以下虚拟主机信息(出于安全考虑省略了私人详细信息):

<VirtualHost IP_ADDRESS_HERE:443>
ServerAdmin MY_EMAIL
ServerName WWW_SERVER_NAME_COM
DocumentRoot PATH_TO_HTDOCS
<Directory />
    Options FollowSymLinks
    AllowOverride All
</Directory>

ErrorLog PATH_TO_LOGS/error.log
CustomLog PATH_TO_LOGS/access.log combined
SSLEngine on
SSLCertificateFile PATH_TO_SSL/MY_SITE_NAME.com.crt
SSLCertificateKeyFile PATH_TO_SSL/MY_SITE_NAME.csr
SSLCertificateChainFile PATH_TO_SSL/gd_bundle.crt
</VirtualHost>

当我将这些详细信息添加到虚拟主机后重新启动 apache 时,我在错误日志中收到以下错误消息:

[Fri Aug 24 02:23:55 2012] [error] Init: Private key not found
[Fri Aug 24 02:23:55 2012] [error] SSL Library Error: 218710120 error:0D094068:asn1     encoding routines:d2i_ASN1_SET:bad tag
[Fri Aug 24 02:23:55 2012] [error] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Fri Aug 24 02:23:55 2012] [error] SSL Library Error: 218595386 error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error
[Fri Aug 24 02:23:55 2012] [error] SSL Library Error: 218734605 error:0D09A00D:asn1 encoding routines:d2i_PrivateKey:ASN1 lib
[Fri Aug 24 02:28:02 2012] [error] Init: Private key not found
[Fri Aug 24 02:28:02 2012] [error] SSL Library Error: 218710120 error:0D094068:asn1 encoding routines:d2i_ASN1_SET:bad tag
[Fri Aug 24 02:28:02 2012] [error] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Fri Aug 24 02:28:02 2012] [error] SSL Library Error: 218595386 error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error
[Fri Aug 24 02:28:02 2012] [error] SSL Library Error: 218734605 error:0D09A00D:asn1 encoding routines:d2i_PrivateKey:ASN1 lib

我是 Apache SSL 的新手,所以任何帮助都将不胜感激。我已经在 Google 上搜索了很多次,并尝试尽可能地遵循现有的方法,但我希望经验丰富的专家可以发现新手错误。

如果我删除 SSL 信息,我可以从 MY_SITE:443 查看站点,因此端口是打开的并且 apache 正在监听/服务。

答案1

您尚未安装私钥。这...

SSLCertificateKeyFile PATH_TO_SSL/MY_SITE_NAME.csr

...指向您的证书签名请求 (CSR),它基本上是已使用您的私钥签名的“预证书”。您将其发送给 SSL 提供商,他们使用他们的私钥,现在您就有了证书。

运行以下命令即可生成私钥:

openssl req -new -newkey rsa:2048 -nodes \
  -keyout yourdomain.key -out yourdomain.csr

-keyout选项表示您的密钥位于名为的文件中yourdomain.key。这是需要提供给SSLCertificateKeyFileApache 配置中的选项的内容。

相关内容