windows環境下 apache配置https協議

配置https協議:

1、安裝好apache環境,注意要裝ssl版本的。這裏裝在c:/apache目錄下。

2、生成服務器證書

1)在DOS命令下進入apache/bin目錄

2)在windows環境下需先設置Openssl環境變量:
執行命令 

[plain] view plain copy
  1. set OPENSSL_CONF=..\conf\openssl.cnf  

請在執行之前確保 openssl.cnf 存在,否則會出現:WARNING: can't open config file: /usr/local/ssl/openssl.cnf 信息提示。
還有在windows系統下.cnf 默認會被當成快捷方式,看不到擴展名。

3)生成私鑰文件:
執行命令 

[plain] view plain copy
  1. openssl genrsa 1024>server.key  

說明:這是用128位rsa算法生成密鑰,得到server.key文件。 > 是輸出文件的標識符

這種生成方法生成的是沒有密鑰的私鑰文件。當然,Apache提供了加入密鑰(Password)的命令,就是加入參數-des3。命令爲:

[plain] view plain copy
  1. openssl genrsa 1024 -des3 > server.key  
使用上述命令生成私鑰文件是需要輸入密鑰的,運行的時候會讓你輸入並確認你的密鑰。但是在Windows環境下會導致以下錯誤:錯誤:Apache啓動失敗,錯誤提示是:Init: SSLPassPhraseDialog builtin is not supported on Win32 (key file .....)  
原因是window下的apache不支持加密的私鑰文件。
 注:生成的證書中RSA密鑰對的默認長度是1024,取值是2的整數次方。建議使用4096以上。

4)生成證書請求文件。
執行命令 

[plain] view plain copy
  1. openssl req -new -key server.key > server.csr  

  說明:這是用步驟3的密鑰生成證書請求文件server.csr, 這一步會有很多參數,需要一一輸入。

按提示輸入一系列的參數:
Country Name (2 letter code) [AU]:CN ISO國家代碼(只支持兩位字符) 

State or Province Name (full name) [Some-State]:ZJ所在省份 

Locality Name (eg, city) []:HZ所在城市

Organization Name (eg, company):SW_TECH公司名稱

Organizational Unit Name (eg, section) []:SW_TECH組織名稱

Common Name (eg, YOUR name) []:kedou.com申請證書的域名 

Email Address []:[email protected] 管理員郵箱

Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: 交換密鑰 

An optional company name []:  注:Common Name必須和httpd.conf中server name必須一致,否則apache不能啓動 (啓動apache時錯誤提示爲:RSA server certificate CommonName (CN) `Kedou' does NOT match server name!? ) 

5)簽署服務器證書文件。
執行命令行 

[plain] view plain copy
  1. openssl req -x509 -days 365 -key server.key -in server.csr > server.crt  
說明:這是用步驟3,4的的密鑰和證書請求生成證書server.crt,-days參數指明證書有效期,單位爲天,x509表示生成的爲X.509證書。

以上籤署證書僅僅做測試用,真正運行的時候,應該將CSR發送到一個CA返回真正的證書。網上有些文檔描述生成證書文件的過程比較繁瑣,就是因爲    他們自己建立了一個CA中心,然後再簽署server.csr

用openssl x509 -noout -text -in server.crt 可以查看證書的內容。證書實際上包含了Public Key


3、配置httpd.conf

打開httpd.conf文件,移除註釋的行:

[plain] view plain copy
  1. Include conf/extra/httpd-ssl.conf  
  2. LoadModule ssl_module modules/mod_ssl.so  

打開httpd-ssl.conf,修改如下:

[plain] view plain copy
  1. <VirtualHost _default_:443>  
  2. SSLEngine On  
  3. SSLCertificateFile ../bin/server.crt   
  4. SSLCertificateKeyFile ../bin/server.key  
  5. #SSLCertificateChainFile ../bin//ca.crt // 暫未啓用  
  6. #......   
  7. DocumentRoot "c:/apache/htdocs"  
  8. ServerName www.kedou.com:443  
  9. </VirtualHost>  

4、重啓apahce服務,訪問https://localhost,完工!

===========出現錯誤彙集==========

1,、"Syntax error on line 80 of c:/apache/conf/extra/httpd-ssl.conf:ErrorLog takes one argument,The filename of the error log"或者"Syntax error on line 99 of c:/apache/conf/extra/httpd-ssl.conf:SSLCertificateFile takes one 


5、假如遇到apache無法啓動的時候,可以選我的電腦-》管理-》事件檢查器-》應用程序日誌,打開apache的錯誤報告,會有提示哪裏出錯了,一般都可以找到原因,

可以啓動,但無法映射到對應頁面,可以命令中輸入httpd 會提示相應的錯誤。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章