20.6. 產生一把金鑰

您必須是 root 才能產生一把金鑰。

首先,cd/etc/httpd/conf 目錄,使用下列指令移除安裝過程中產生的虛假金鑰與憑證:

rm ssl.key/server.key
rm ssl.crt/server.crt

下一步,您需要建立您自己的亂數金鑰,請轉換至 /usr/share/ssl/certs 目錄再輸入下列指令:

make genkey

您的系統將會顯示如下的訊息:

umask 77 ; \
/usr/bin/openssl genrsa -des3 1024 > /etc/httpd/conf/ssl.key/server.key
Generating RSA private key, 1024 bit long modulus
.......++++++
................................................................++++++
e is 65537 (0x10001)
Enter PEM pass phrase:

現在您需要輸入一個通行密碼,為了安全起見,該密碼至少要包含 8 個字元,包括數字亦或標點符號,而且不是字典上的字。 也請您記得您的通行密碼是有分辨大小寫的。

注請注意
 

您需要在每次啟動您的安全伺服器時輸入這個通行密碼,所以請勿忘記它。

請再輸入一次通行密碼以確認它是正確的。 當您正確地輸入後,將會建立包含您金鑰的 /etc/httpd/conf/ssl.key/server.key 檔案。

請注意,假如您不想要在每次啟動安全伺服器時都要輸入通行密碼,您將需要使用下列這兩個指令(而非 make genkey)來建立您的金鑰。

使用下列的指令來建立您的金鑰:

/usr/bin/openssl genrsa 1024 > /etc/httpd/conf/ssl.key/server.key

然後使用下列的指令以確定該檔案的權限設定是正確的:

chmod go-rwx /etc/httpd/conf/ssl.key/server.key

在您使用以上指令建立您的金鑰後,您將不需要使用一個通行密碼來啟動您的安全伺服器。

注意警示
 

停用您安全伺服器的通行密碼特色會有安全性的考量,因此不建議您停用安全伺服器的通行密碼特色。

不使用通行密碼所牽連到的問題會直接關連至主機機器上所維護的安全性。 舉例來說,假如一個不擇手段的個人危及主機機器上的一般 UNIX 安全設定,那個人也許可以取得您的私鑰(也就是您 server.key 檔案的內容),該金鑰可以被使用來伺服似乎來自您安全伺服器的網頁。

假如在主機電腦上 UNIX 的安全性設定是經過嚴格維護的(已安裝所有可用的作業系統修正與更新,且不執行任何非必要或危險的服務等等),安全伺服器的通行密碼也許就不是那麼必要了。 然而,因為您的安全伺服器不需要很常重新開機,在大部分的情況下,藉由輸入一個通行密碼以提供額外的安全性是值得的。

server.key 檔案應該是由系統上的 root 使用者所擁有,而且其他任何的使用者絕對不可以存取。 請為這個檔案建立一個備份,並將這個備份儲存在一個安全的地方。 因為假如您在使用它來建立您的憑證要求後,遺失 server.key 檔案,您將不再能夠使用您的憑證而且 CA 也無法幫助您,此時您便需要這個備份的副本。 您僅有的選擇是要求(並且購買)一個新的憑證。

假如您要從一個 CA 購買一個憑證,請繼續至 菴 20.7 節; 假如您要產生您自我簽署的憑證,請翻閱至 菴 20.8 節