Windows Server 2003 上 PHP 的 SSL

Windows Server 2003 上 PHP 的 SSL

我有視窗伺服器 2003 R2阿帕契2.2.4 和PHP5.2.6。我想透過 https (SSL) 存取頁面。

我收到此錯誤(Zend Framework GData):

Unable to find the socket transport "ssl" - enter code here did you forget to enable it when you configured PHP?

所以我做了什麼。我轉到 php.ini 並取消註釋該行

extension=php_openssl.dll

我也安裝了Win32 OpenSSL

但沒有任何作用。我該怎麼辦?

答案1

好的,這裡有很多步驟要檢查:

  • 首先,建立一個phpinfo() 檔案來檢查PHP 的SSL 擴充功能是否確實已啟用,我知道您說過您已啟用它,但請檢查您是否已在正確的PHP.ini 檔案中執行此操作,並且更改是否已實際生效。
  • 確保 libeay32.dll 和 ssleay32.dll 位於 Windows 路徑中的某個位置
  • 確保 php_openssl.dll 位於您的擴充目錄中
  • 檢查您的 phpinfo() 檔案是否顯示正確的擴充目錄。

答案2

這些是本教學的相關部分:http://fash7y.wordpress.com/2011/12/0/solved-how-to-set-up-https-with-openssl-in-wamp/

繼續使用http://openssl-for-windows.googlecode.com/files/openssl-0.9.8k_WIN32.zip

好的,讓我們進行下一步。 ;)

  1. 建立 SSL 憑證和金鑰

A。 Ekstrak OpenSSL 到您的目錄,並複製此檔案:

openssl.cnf to .\Apache2.2.11\conf\
from folder bin, copy all files to .\Apache2.2.11\bin\

// 替換舊檔案! :D

b.透過CMD在搜尋選單中鍵入內容開啟 DOS 命令視窗。

C。鍵入此 cd C:\wamp\bin\apache\apache2.2.11\bin

d.輸入以下命令以建立具有 1024 位元加密的伺服器私鑰:openssl genrsa -des3 -out server.key 1024

// 它會詢問你一個密碼短語(password),只需輸入你喜歡的任何密碼。

e.從 RSA 私鑰中刪除密碼(同時保留原始檔案的備份副本)。輸入這個:

複製 server.key server.key.org

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

// 它會詢問您密碼,只需輸入即可。

F。使用您剛剛建立的 RSA 金鑰建立自簽章憑證(X509 結構)。輸入:openssl req -new -x509 -nodes -sha1 -days 365 -key server.key -out server.crt -config C:\wamp\bin\apache\apache2.2.11\conf\openssl.cnf

  1. 複製 server.key 和 server.crt 文件

A。在Apache2.2.11\conf\中,建立兩個資料夾,分別命名為ssl.key和ssl.crt

b.將 server.key 檔案複製到 ssl.key 資料夾,將 server.crt 檔案複製到 ssl.crt 資料夾

  1. 編輯 httpd.conf 檔案、php.ini 和 httpd_ssl.conf

A。開啟httpd.conf文件

b.刪除以下行中的註解「#」:LoadModule ssl_module module/mod_ssl.so

C。刪除以下行中的註解「#」: Include conf/extra/httpd-ssl.conf

d.開啟此檔案-> C:\wamp\bin\php\php5.3.8\php.ini

e.刪除註釋“;”在顯示下列內容的行:extension=php_openssl.dll

F。開啟此檔案 -> C:\wamp\bin\apache\Apache2.2.11\conf\extra\httpd_ssl.conf

G。找到顯示以下內容的行: 。

H。緊接著,請更改以下行:

Change the line “DocumentRoot …” to DocumentRoot “C:/wamp/www/”
Change the line “ServerName…” to ServerName localhost:443
Change the line “ErrorLog….” to Errorlog “C:/wamp/bin/apache/Apache2.2.11/logs/sslerror.log”
Change the line “TransferLog ….” to TransferLog “C:/wamp/bin/apache/Apache2.2.11/logs/sslaccess.log”
Change the line “SSLCertificateFile ….” to SSLCertificateFile “C:/wamp/bin/apache/Apache2.2.11/conf/ssl.crt/server.crt”
Change the line “SSLCertificateKeyFile ….” to SSLCertificateKeyFile “C:/wamp/bin/apache/Apache2.2.11/conf/ssl.key/server.key”
Change the line which says <Directory “C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin”> or something like that (sorry I’m forget what its default dir :p) to <Directory “C:/wamp/www/”>
Add the following lines inside those <Directory … >…</Directory> tags:
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
Change the line “CustomLog…” to CustomLog “C:/wamp/bin/apache/Apache2.2.11/logs/ssl_request.log”
  1. 確保它有效!

A。在先前的 DOS 指令視窗中,輸入 httpd -t 。如果顯示 Sysntax is OK,則進入下一步。如果不是,則更正錯誤的語法並重做步驟 3。

b.重新啟動 Apache 伺服器。如果重新啟動成功,則開啟瀏覽器輸入http.s localhost/

進展如何?有效,嗯?恭喜! :D

  1. 試試這個:htt..localhost

相關內容