Назад | Перейти на главную страницу

SSL для PHP в Windows Server 2003

у меня есть Windows Server 2003 R2 с Apache 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 OpenSSL.

Но ничего не работает. Что мне делать?

Это соответствующие части учебника по: 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

а. Ekstrak OpenSSL в свой каталог и скопируйте этот файл:

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

// Заменить старые файлы! : D

б. Откройте командное окно DOS, набрав CMD в меню поиска.

c. Введите этот компакт-диск C: \ wamp \ bin \ apache \ apache2.2.11 \ bin

d. Создайте закрытый ключ сервера с 1024-битным шифрованием, введя эту команду: openssl genrsa -des3 -out server.key 1024

// Вам будет предложено ввести пароль (пароль), просто введите любой пароль, который вам нравится.

е. Удалите парольную фразу из закрытого ключа RSA (сохраняя резервную копию исходного файла). Введите это:

скопировать server.key server.key.org

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

// Он спросит пароль, просто введите его.

f. Создайте самозаверяющий сертификат (структура X509) с только что созданным ключом RSA. Введите это: 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

а. В Apache2.2.11 \ conf \ создайте две папки с именами ssl.key и ssl.crt

б. Скопируйте файл server.key в папку ssl.key и файл server.crt в папку ssl.crt

  1. Отредактируйте файл httpd.conf, php.ini и httpd_ssl.conf

а. Откройте файл httpd.conf

б. Удалите комментарий «#» в строке, которая гласит: LoadModule ssl_module modules / mod_ssl.so

c. Удалите комментарий «#» в строке, которая гласит: Включить conf / extra / httpd-ssl.conf

d. Откройте этот файл-> C: \ wamp \ bin \ php \ php5.3.8 \ php.ini

е. Удалите комментарий «;» в строке, которая гласит: extension = php_openssl.dll.

f. Откройте этот файл -> C: \ wamp \ bin \ apache \ Apache2.2.11 \ conf \ extra \ httpd_ssl.conf

грамм. Найдите строку, в которой написано:.

час Сразу после него измените строку, в которой говорится:

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. Убедитесь, что это работает!

а. В предыдущих окнах команд DOS введите httpd -t. Если отображается сообщение Sysntax is OK, переходите к следующему шагу. Если нет, исправьте неправильный синтаксис и повторите шаг 3.

б. Перезагрузите сервер Apache. Если перезапуск прошел успешно, откройте браузер и введите http.s localhost /

Как дела? Работает, а? Поздравляю! : D

  1. Попробуйте это: htt..localhost

Хорошо, здесь есть несколько шагов, которые нужно проверить:

  • Во-первых, создайте файл phpinfo (), чтобы убедиться, что расширение PHP SSL действительно включено, я знаю, вы сказали, что вы его включили, но убедитесь, что вы сделали это в правильном файле PHP.ini, и что изменение действительно вступает в силу. .
  • Убедитесь, что libeay32.dll и ssleay32.dll находятся где-то в Windows PATH
  • Убедитесь, что php_openssl.dll находится в каталоге ваших расширений
  • Убедитесь, что ваш файл phpinfo () показывает правильный каталог расширений.