Apache-2.2

為 apache 生成自簽名 SSL 證書

  • June 1, 2009

我想為網站創建自簽名證書。舊證書幾天前過期了。系統上託管了多個 NameVirtualHost。我用來創建證書的命令取自一個教程網站,它們是:

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 證書的教程網站,但他們提到的步驟都沒有奏效。

使用這一行在一個文件中生成證書和密鑰

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

那麼您需要的唯一配置是

SSLEngine on
SSLCertificateFile /etc/apache2/apache.pem

這可能看起來有點微不足道,但請檢查您的 .key 文件的權限

引用自:https://serverfault.com/questions/17061