2012-03-27 206 views
4

我使用以下命令創建了自簽名服務器證書,私鑰服務器密鑰和證書頒發機構自己的證書。Apache2 + OpenSSL,證書CA

openssl genrsa -out ca.key 2048 
openssl req -config openssl.cnf -new -x509 -days 365 -key ca.key -out ca.crt 
openssl genrsa -out server.key 2048 
openssl req -config openssl.cnf -new -key server.key -out server.csr 
openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt 

然後我使用下面的代碼將它們添加到httpd-ssl.conf中。

SSLCertificateFile "C:/Apache2/conf/server.crt" 
SSLCertificateKeyFile "C:/Apache2/conf/server.key" 
SSLCertificateChainFile "C:/Apache2/conf/ca.crt" 

但是訪問https://localhost當我得到: - 失敗的錯誤

安全連接到本地主機 連接的過程中出現。 Peer的證書有一個無效的簽名。 (錯誤代碼: sec_error_bad_signature)您試圖查看的頁面不能爲 ,因爲接收到的數據的真實性可能不是 已驗證。 *請聯繫網站所有者告知他們這個問題。

任何想法的人?

感謝

普通不可信錯誤 本地主機使用無效的安全證書。 證書不可信,因爲它是自簽名的。

我的CA證書錯誤 連接到本地主機時發生錯誤。 對等方的證書有無效簽名。

+0

生成證書時使用了什麼常用名稱(CN)? – 2012-03-27 12:37:02

+0

對於服務器和CA我用localhost – TSUK 2012-03-27 12:39:45

回答

11

嘗試重新生成您的證書是這樣的:

openssl genrsa -des3 -out server.key 2048 
openssl req -new -key server.key -out server.csr 

然後,從避免的Apache服務器證書的密碼,詢問您的密碼,每次你重新啓動:

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 

之後,請指定SSLCertificateFileSSLCertificateKeyFile以使用您的新證書。

1

由於自簽名證書沒有受信任的根證書頒發機構,因此您需要將它們添加到瀏覽器的可信CA列表中。瀏覽器無法驗證非侵入式證書。

+1

我認爲我的錯誤可能是配置之一,而不是我的證書自簽名。我從來沒有使用SSLCertificateChainFile「C:/Apache2/conf/ca.crt」作爲自簽名證書,但是如果我不使用ca.crt並生成非加密文件,它可以很好地工作。 – TSUK 2012-03-27 12:31:32

0

這是因爲它是一個自簽名證書。爲避免此消息,您需要進行驗證,並從Verisign,GoDaddy等受信任的CA權威機構購買證書。 您還可以從COMODO Instant SSL

嘗試免費的證書既然你只是在本地主機上測試,不用擔心警告。但是在製作過程中,這可能會阻止您的用戶。

+2

在非CA不受信任的證書上通常會出現錯誤代碼:sec_error_untrusted_issuer,但錯誤代碼:sec_error_bad_signature不允許我添加異常。你能否看到我是否犯了配置錯誤? – TSUK 2012-03-27 12:23:53