Windows Server 2003 上の PHP の SSL

Windows Server 2003 上の PHP の SSL

私は持っているウィンドウズServer 2003 R2とアパッチ2.2.4 およびPHP の5.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 オープンSSL

しかし、何も機能しません。どうすればいいでしょうか?

答え1

さて、ここで確認すべき手順がいくつかあります。

  • まず、phpinfo() ファイルを作成して、PHP の SSL 拡張機能が実際に有効になっていることを確認します。有効になっているとおっしゃっていますが、正しい PHP.ini ファイルで有効になっていること、および変更が実際に有効になっていることを確認してください。
  • libeay32.dll と ssleay32.dll が Windows PATH のどこかにあることを確認します。
  • 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. 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

// パスフレーズ (パスワード) を要求されるので、任意のパスワードを入力してください。

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という名前の2つのフォルダを作成します。

b. server.key ファイルを ssl.key フォルダにコピーし、server.crt ファイルを ssl.crt フォルダにコピーします。

  1. httpd.confファイル、php.ini、httpd_ssl.confを編集します。

a. httpd.confファイルを開く

b. LoadModule ssl_module modules/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

関連情報