为 Apache 生成自签名 SSL 证书

为 Apache 生成自签名 SSL 证书

我想为网站创建自签名证书。旧证书几天前已过期。系统上托管了多个 NameVirtualHosts。我用来创建证书的命令取自一个教程网站,它们是:

openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr 
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

此后,在 ssl.conf 文件中,我已在 VirtualHost 部分下指定以及其他管理员完成的旧设置。

SSLEngine on
SSLCertificateFile <full_path>/server.crt
SSLCertificateKeyFile <full_path>/server.key

启动服务器时,我在日志文件中收到以下消息,并且服务器无法启动。

在 error_log 文件中,消息

 [Mon Jun 01 23:52:46 2009] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)

在 ssl_error_log 文件中,消息

 [Mon Jun 01 23:52:46 2009] [error] Init: Private key not found
 [Mon Jun 01 23:52:46 2009] [error] SSL Library Error: 218710120 error:0D094068:asn1 encoding routines:d2i_ASN1_SET:bad tag
 [Mon Jun 01 23:52:46 2009] [error] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
 [Mon Jun 01 23:52:46 2009] [error] SSL Library Error: 218595386 error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error
 [Mon Jun 01 23:52:46 2009] [error] SSL Library Error: 218734605 error:0D09A00D:asn1 encoding routines:d2i_PrivateKey:ASN1 lib

如果有人能解释如何解决这个问题,我将不胜感激。我尝试过其他几个关于自签名 SSL 证书的教程网站,但他们提到的所有步骤都不起作用。

答案1

使用下面这个命令在一个文件中生成证书和密钥

openssl req -new -x509 -days 999 -nodes -out apache.pem -keyout apache.pem

那么你唯一需要的配置是

SSLEngine on
SSLCertificateFile /etc/apache2/apache.pem

答案2

这看起来可能有点琐碎,但请检查 .key 文件的权限

答案3

您可以openssl req -newkey rsa:1024 -keyout privkey.pem在生成 SSL 密钥时保存它,以防密钥生成不太正确。

相关内容