apache新增
ssl的流程
1. 首先保證安裝了
openssl
,並且能夠在在終端執行它。
2. 為你的
apache
(三倍-des
加密,pem
格式)建立乙個
rsa私鑰。
$ openssl genrsa -des3 -out
server.key 1024
請將你的
server.key
檔案備份,並且記住你輸入得進入密碼。能夠通過以下的命令察看該檔案:
$ openssl rsa -noout -text -in
server.key
你也可以通過以下的命令建立乙個沒有加密的版本(不建議):
$ openssl rsa -in server.key -out
server.key.unsecure
3. 通過
rsa私鑰檔案來建立乙個證書請求檔案(
pem格式,
csr)
$ openssl req -new -key server.key
-out server.csr
同樣,你需要做乙個備份,同時,在
openssl
命令列提示輸入
commonname
的過程中,你必須輸入乙個
fqdn
(乙個完全的有資格的網域名稱),乙個站點生成了乙個
csr請求檔案。可以通過以下的命令來檢視
csr的詳細內容:
$ openssl req -noout -text -in
server.csr
4. 現在,你已經有了乙個證書請求檔案(
csr)了,你可以將此檔案傳送給乙個認證機構來進行認證,當然會等一段時間並且花上一些錢。或者通過自己的
ca認證機構來進行認證。
§ verisign
§ thawte consulting
§ certisign certificadora digital ltda.
§ iks gmbh
§ uptime commerce ltd.
§ belsign nv/sa
通過以下的命令來察看經過認證的證書資訊。
$ openssl x509 -noout -text -in
server.crt
5. 現在,我們有了兩個檔案,
server.key
和server.crt
,下面就是在
apache
中的httpd.conf
檔案配置:
sslcertificatefile /path/to/this/server.crt
sslcertificatekeyfile /path/to/this/server.key
請求檔案不再需要了。
· 使用自認證機構:
最簡單的就是通過
ca.pl
或者是通過
ca.sh
來對請求檔案簽名。
1. 為你的
ca建立乙個
rsa私鑰(三
des加密並且是
pem格式):
$ openssl genrsa -des3 -out ca.key
1024
備份並且記住你輸入的訪問密碼。通過以下的命令可以檢視私鑰的詳細資訊:
$ openssl rsa -noout -text -in
ca.key
你也可以建立乙個非加密的
pem格式的私鑰:
$ openssl rsa -in ca.key -out
ca.key.unsecure
2. 建立乙個自簽名的證書檔案(
x.509
結構,輸出為
pem格式):
$ openssl req -new -x509 -days
365 -key ca.key -out ca.crt
通過以下的命令查詢:
$ openssl x509 -noout -text -in
ca.crt
3. 準備乙個指令碼檔案來對請求檔案簽名,
openssl
不允許簡單的通過
openssl ca
來對請求檔案簽名。所以乙個名為
sign.sh
的指令碼檔案(
mod_ssl
的子目錄
pkg.contrib
下),是用這個來進行簽名,不過還是建議使
用下面的方法進行簽名。
4. 現在可以用這個指令碼來進行簽名了(剛才生成的
ca的私鑰和證書必須在這個指令碼的目錄下):
$ ./sign.sh server.csr
得到乙個證書檔案—〉
server.crt.
· 怎樣更改我的私鑰的
pass-phrase
密碼?只需要簡單的讀取它並重新寫入,同時指定它的
pass-phrase
,通過以下的命令完成:
$ openssl rsa -des3 -in server.key
-out server.key.new
$ mv server.key.new server.key
這時,你被要求兩次來輸入乙個
pem
的pass-phrase
,第一次要求輸入舊密碼,第二次要求輸入新密碼。
· 怎樣可以消除
apache
啟動的時候的密碼(
pass-phrase
)提示對話方塊:
原因是儲存在你的私鑰檔案中的
rsa私鑰是乙個一加密格式儲存的。密碼是保證能夠讀取這個金鑰檔案,如果保證你的伺服器足夠的安全的話,可以通過以下的命令消除:
1. 從
rsa私鑰中移除密碼(同時保留原始檔):
$ cp server.key server.key.org
$ openssl rsa -in server.key.org -out
server.key
2. 保證私鑰只能被
root
使用者讀取:
$ chmod 400 server.key
現在這是乙個沒有沒有加密的金鑰拷貝。在使用這個金鑰檔案的時候,將不會再提示你輸入密碼,然而,如果其他任何人的到這個私鑰檔案,他都可以在網路上模仿你。所以一定要保證這個金鑰檔案只能被
root
使用者讀取。
· 怎麼驗證私鑰檔案和我的證書檔案是匹配的?
私鑰檔案包括一系列的數字。這些數字中的兩個是「來自
「公鑰檔案的,其他的是私鑰的一部分。公鑰的一些
bit值被嵌入到你的證書中(我們可以從證書
csr中得到),通過以下的命令來檢視輸出的數字,同時比較這些數字:
$ openssl x509 -noout -text -in
server.crt
$ openssl rsa -noout -text -in
server.key
他們必須一致,因為它們都是很長的串,所以可以通過下面的方法來檢視:
$ openssl x509 -noout -modulus -in
server.crt | openssl md5
$ openssl rsa -noout -modulus -in
server.key | openssl md5
這時比較兩個短的數字串
$ openssl req -noout -modulus -in
server.csr | openssl md5
Windows下Apache新增SSL模組
參考資料 測試環境 windows2003 32位 apache2.4 php5.4 首先cmd命令進入 bin目錄下 1 成 伺服器公鑰檔案server.key openssl genrsa out server.key 1024 2 生成server.csr openssl req new ou...
配置ssl證書 Apache配置SSL證書指引
1 使用yum安裝apache yum install httpd y2 修改測試頁面 vim var www html index.hemlps 修改為測試內容,我這裡修改的是 this is a test page.3 啟動服務 service httpd start4 訪問測試 1 安裝ssl...
ssl 協議流程
最近在看公司的ssl協議實現,現將其流程總結如下 步驟解釋如下 1.client clienthello server。1 clienthello 訊息體 client.version 客戶端協議版本 clienthello.timestamp 客戶端時間戳 clienthello.random 客...