apachectl startssl(怎樣才能跳過啟動時輸入密碼)已解決

火星人 @ 2014-03-04 , reply:0


apachectl startssl(怎樣才能跳過啟動時輸入密碼)已解決

Apache: 2.0.54
openssl: 0.9.7g(0.9.8 有 bug)
通過 openssl 頒發證書,並配置好 ssl.conf 后,可以通過 apachectl startssl 來啟動 HTTPS
但每次都啟動的時候讓我輸入密碼,百思不得其解,查閱過網上其他人的做法,也都是如此,如何才能不要求輸入密碼也過去呢?

想了良久,實在想不出原因,特此麻煩大家,有好的建議或者想法告訴我,多謝 :cry:
《解決方案》

apachectl startssl(怎樣才能跳過啟動時輸入密碼)已解決

(while preserving the original file):
$ cp server.key server.key.org
$ openssl rsa -in server.key.org -out server.key

確認server.key 文件為root可讀
$ chmod 400 server.key
《解決方案》

apachectl startssl(怎樣才能跳過啟動時輸入密碼)已解決

已解決,謝謝 mocou :em18:

讓apache在啟動時不需輸入 RSA私鑰 (while preserving the original file):
$ cp server.key server.key.org
$ openssl rsa -in server.key.org -out server.key

確認server.key 文件為root可讀
$ chmod 400 server.key
《解決方案》

apachectl startssl(怎樣才能跳過啟動時輸入密碼)已解決

補充一下,若原來沒密碼好像就不用,
若有密碼,但要自動輸入則在

SSLPassPhraseDialog 項上面設定, exec 的輸出結果即是 passwd
http://httpd.apache.org/docs/2.0/mod/mod_ssl.html#sslpassphrasedialog
《解決方案》

apachectl startssl(怎樣才能跳過啟動時輸入密碼)已解決

原帖由 "abel"]補充一下,若原來
《解決方案》

apachectl startssl(怎樣才能跳過啟動時輸入密碼)已解決

學習!·
《解決方案》

apachectl startssl(怎樣才能跳過啟動時輸入密碼)已解決

為你的Apache伺服器創建一個RSA私用密鑰(被Triple-DES加密並且進行PEM格式化):

# openssl genrsa -des3 -out server.key 1024

請在安全的地方備份這個server.key文件。記住你輸入的通行短語(pass phrase)!你可以通過下面的命令看到這個RSA私用密鑰的細節。

# openssl rsa -noout -text -in server.key

而且你可以為這個RSA私用密鑰創建一個加密的PEM版本(不推薦),通過下列命令:

# openssl rsa -in server.key -out server.key.unsecure

用伺服器RSA私用密鑰生成一個證書籤署請求(CSR-Certificate Signing Request)(輸出將是PEM格式的):

# openssl req -new -key server.key -out server.csr

當OpenSSL提示你「CommonName」時,確保你輸入了伺服器的FQDN("Fully Qualified Domain Name") ,即,當你為一個以後用https://www.foo.dom/訪問的網站生成一個CSR時,這裡輸入"www.foo.dom"。你可藉助下列命令查看該CSR的細節:

# openssl req -noout -text -in server.csr


將CSR發到一個CA

現在你必須發送該CSR到一個CA以便簽署,然後的結果才是可以用於Apache的一個真正的證書。

有兩種選擇:

第一種,你可以通過一個商業性CA如Verisign 或 Thawte簽署證書。那麼你通常要將CSR貼入一個web表格,支付簽署費用並等待簽署的證書,然後你可以把它存在一個server.crt文件中。關於商業性CA的更多信息,請參見下列鏈接:

Verisign - http://digitalid.verisign.com/server/apacheNotice.htm
Thawte Consulting - http://www.thawte.com/certs/server/request.html
CertiSign Certificadora Digital Ltda. - http://www.certisign.com.br
IKS GmbH - http://www.iks-jena.de/produkte/ca /
Uptime Commerce Ltd. - http://www.uptimecommerce.com
BelSign NV/SA - http://www.belsign.be

你自己的CA

第二種,你可以利用自己的CA並由該CA簽署CSR。你可以創建自己的認證中心來簽署證書。最簡單的方法是利用OpenSSL提供的CA.sh或 CA.pl腳本。比較複雜而且是手工的方法是:

為你的CA創建一個RSA私用密鑰( 被Triple-DES加密並且進行PEM格式化的):

# openssl genrsa -des3 -out ca.key 1024

請在安全的地方備份這個ca.key文件。記住你輸入的通行短語(pass phrase)!你可以通過下面的命令看到這個RSA私用密鑰的細節。

# openssl rsa -noout -text -in ca.key

而且你可以為這個RSA私用密鑰創建一個加密的PEM版本(不推薦),通過下列命令:

# openssl rsa -in ca.key -out ca.key.unsecure

利用CA的RSA密鑰創建一個自簽署的CA證書(X509結構)(輸出將是PEN格式的):

# openssl req -new -x509 -days 365 -key ca.key -out ca.crt

你可以通過下列命令查看該證書的細節:

# openssl x509 -noout -text -in ca.crt

準備一個簽署所需的腳本,因為"openssl ca"命令有一些奇怪的要求而且預設的OpenSSL配置不允許簡單地直接使用"openssl ca"命令,所以一個名為sign.sh的腳本隨mod_ssl分發一道發布(子目錄pkg.contrib/)。 使用該腳本進行簽署。

現在你可以使這個CA簽署伺服器的CSR,以便創建用於Apache伺服器內部的真正的SSL證書(假定你手頭已經有一個server.csr):

# ./sign.sh server.csr

它簽署伺服器的CSR並且結果在一個server.crt文件中。

現在你有兩個文件:server.ket和server.crt。在你的Apache的httpd.conf文件中,如下使用它們:

SSLCertificateFile /path/to/this/server.crt
SSLCertificateKeyFile /path/to/this/server.key

server.csr不再需要了。
《解決方案》

apachectl startssl(怎樣才能跳過啟動時輸入密碼)已解決

原來沒密碼好像就不用,
若有密碼,但要自動輸入(其實說的就是上面的CA)
《解決方案》

apachectl startssl(怎樣才能跳過啟動時輸入密碼)已解決

謝謝你,這個做法我知道

但我想知道,像這種方式(沒有證書的)的 https,除了在網路中不是以明文傳輸以外,並不能保證數據的安全吧?
我是這樣理解的,別人截取以後一樣可以還原,不知道說的對嗎?
《解決方案》

apachectl startssl(怎樣才能跳過啟動時輸入密碼)已解決

你能破解DES演算法就能還原了




[火星人 via ] apachectl startssl(怎樣才能跳過啟動時輸入密碼)已解決已經有143次圍觀

http://www.coctec.com/docs/service/show-post-28006.html