windows下apache+https環境配置


 

1、修改配置文件conf/httpd.conf,去掉以下語句注釋符號‘#’:

 

修改配置文件conf/extra/httpd-ssl.conf,把相應的選項改成如下:

 

 

2、配置phpphp-5.6.30

php路徑加入系統環境變量:

右擊計算機 -> 屬性 -> 高級系統設置 -> 高級 -> 環境變量 -> 用戶變量 -> 新建環境變量。

變量名:PHP_HOME

變量值:D:\wamp\php-5.6.30

 

3、生成證書

3.1 cmd進入命令行模式,切換至apachebin目錄:cd D:\wamp\httpd-2.4.25\bin;

 

3.2 設置OPENSSL_CONFIG配置,執行命令:set OPENSSL_CONF=../conf/openssl.cnf

 

3.3 首先要生成服務端的私鑰(key文件)openssl genrsa -des3 -out server.key 1024

 

3.4 生成server.csrCertificate Signing Request(CSR),生成的csr文件交給CA簽名后形成服務端自己的證書。屏幕上將有提示,依照其提示一步一步輸入要求的個人信息即可。

      openssl req -new -key server.key -out server.csr -config ../conf/openssl.cnf

 

3.5 對客戶端也用同樣的命令生成keycsr文件

      openssl genrsa -des3 -out client.key 1024

      openssl req -new -key client.key -out client.csr -config ../conf/openssl.cnf

 

3.6 CSR文件必須有CA的簽名才可形成證書。可將此文件發送到verisign等地方由它驗證,要交一大筆錢,何不自己做CA呢。

      openssl req -new -x509 -keyout ca.key -out ca.crt -config ../conf/openssl.cnf

 

3.7 bin目錄下新建一個demoCA文件夾,進入它

  新建newcerts文件夾,不需要進入

  新建index.txt

  新建serial,打開后輸入01保存即可

 

3.8 用生成的CA的證書為剛剛生成的server.csrclient.csr文件簽名:

     openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config ../conf/openssl.cnf

     openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config ../conf/openssl.cnf

 

   注:如果指令出現如下錯誤,進入demoCA,然后打開index.txt.attr,把unique_subject=no即可。

   

 

3.9 生成一個ca.pfx

    openssl pkcs12 -export -in ca.crt -inkey ca.key -out ca.pfx

 

3.10 導入證書

  打開IE瀏覽器 -> 工具 -> Internet選項 -> 內容 -> 證書,按照提示導入ca.pfx,這里要輸入剛才生成ca.pfx過程中輸入的密碼。

 

3.11 以上操作生成了

     client使用的文件有: ca.crt,  client.crt,  client.key

     server使用的文件有:ca.crt,  server.crt,  server.key

  把ca.crt, server.crt, server.key復制到conf目錄下去。

 

3.12 重啟apache,訪問https://127.0.0.1/index.php

 

3.15 如果出現以下錯誤

Starting the 'Apache2.4' service

The 'Apache2.4' service is running.

sl:emerg] [pid 8200:tid 500] AH02577: Init: SSLPassPhraseDialog builtin is not supported on Win32 (key file D:/wamp/httpd-2.4.25/conf/server.key)

[Tue Mar 14 16:37:57.740113 2017] [ssl:emerg] [pid 8200:tid 500] AH02311: Fatal error initialising mod_ssl, exiting. See D:/wamp/httpd-2.4.25/logs/error.log for more information

[Tue Mar 14 16:37:57.740113 2017] [ssl:emerg] [pid 8200:tid 500] AH02564: Failed to configure encrypted (?) private key example:1443:0, check D:/wamp/httpd-2.4.25/conf/server.key

[Tue Mar 14 16:37:57.740113 2017] [ssl:emerg] [pid 8200:tid 500] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag

[Tue Mar 14 16:37:57.740113 2017] [ssl:emerg] [pid 8200:tid 500] SSL Library Error: error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error

[Tue Mar 14 16:37:57.740113 2017] [ssl:emerg] [pid 8200:tid 500] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag

[Tue Mar 14 16:37:57.740113 2017] [ssl:emerg] [pid 8200:tid 500] SSL Library Error: error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error (Type=RSA)

[Tue Mar 14 16:37:57.740113 2017] [ssl:emerg] [pid 8200:tid 500] SSL Library Error: error:04093004:rsa routines:OLD_RSA_PRIV_DECODE:RSA lib

[Tue Mar 14 16:37:57.740113 2017] [ssl:emerg] [pid 8200:tid 500] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag

[Tue Mar 14 16:37:57.740113 2017] [ssl:emerg] [pid 8200:tid 500] SSL Library Error: error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error (Type=PKCS8_PRIV_KEY_INFO)

AH00016: Configuration Failed

這就是說windows不支持加密密鑰,還記得生成server.key輸入的密碼嗎?就是這個地方的錯誤,現在取消它。

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

把生成的server.key復制到conf目錄下覆蓋原來的。

 

5.參考資料

 http://blog.csdn.net/wlmnzf/article/details/50244409

 http://blog.csdn.net/decajes/article/details/41706739

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM