Речь пойдет о дистрибутиве Apache 2.2.x.
Другие дистрибутивы не проверял. Установку проводил на Windwos XP, но все это будет работать и на серверных осях.
1) Скачиваем дистрибутив Apache для win32 с поддержкой SSL (на текущий момент это apache_2.2.6-win32-x86-openssl-0.9.8e.msi) и запускаем установку. Скачать можно тут
http://www.sai.msu.su/apache/httpd/binaries/win32/2) На этом экране жмем Next
3) Далее соглашаемся с лицензией (иначе ни как :) )
4) Вдумчиво читаем во это :), если есть время :)
5) Заполняем поля как показано ниже (потом все это можно изменить в файле конфигурации httpd.conf)
6) Выбираем Custom (мы же умные :) )
7) Выбираем каталог для установки. Путь может быть любой, но лучше избегать пробелов в названиях папок. Далее (в других статьях) все примеры будут относительно этого пути. Так что бдите :) ПУТЬ и да пребудет с вами Сила. Омммм.....
8) Жмем Next, затем Install и пошла установка... Пару раз всплывет консолька, это удаляются временные файлы и устанавливается Apache как сервис. В трее появится значок для управления сервисом Apache.
9) Проверяем установку. Просто вводим в строке браузера localhost. И видим страничку с надписью
It works! как показано на рисунке ниже.
Если такого не увидели, то повторяем шаги от 1 до 9 пока не увидим. :)
10) Правим файлик httpd.conf, который в моем случае лежит в папочке Z:\WAMPServer\Apache\conf
Добавляем туда строчку Listen 443 под строкой Listen 80, как показано на рисунке ниже.
11) Рестартуем Apache. И вводим в строке броузера
http://localhost:443/ и наблюдаем в браузере надпись
It works! как показано на картинке ниже. И погодите радоваться :) Это еще не SSL, это просто проверка того, что Apache слушает на 443 потру.
Если не видим, то пробуем остановить Apache и запустить его снова (иногда рестарт не помогает). Если и это не помогло, то повторяем шаги с 1 по 11 пока не увидим :)
12) Далее копируем из папочки Z:\WAMPServer\Apache\bin два файлика
ssleay32.dll и
libeay32.dll в каталог %systemroot%\system32.
Внимание!!! Это очень важный шаг! Не пропустите его!13) Копируем файлик openssl.cnf из каталога Z:\WAMPServer\Apache\conf в каталог Z:\WAMPServer\Apache\bin
14) Создаем сертификат для нашего сервера. Для этого заходим в каталог Z:\WAMPServer\Apache\bin (консолью или FAR-ом) и там вводим команду:
openssl req -config openssl.cnf -new -out my-server.csrИ отвечаем на все вопросы. Как показано на картинке (пароль естественно не виден, вообще вы можете ввести здесь все что угодно или просто ставить точку в ответе, тогда это поле останется пустым,
единственное исключение составляет вопрос Common Name, здесь надо ввести доменное имя для которого будет использоваться сертификат, например www.vasya.ru, в нашем случае localhost):
После этого в каталоге Z:\WAMPServer\Apache\bin образуется файлик my-server.csr
Далее последовательно даем команды:
openssl rsa -in privkey.pem -out my-server.key
openssl x509 -in my-server.csr -out my-server.cert -req -signkey my-server.key -days 365
openssl x509 -in my-server.cert -out my-server.der.crt -outform DER
15) Создаем каталог ssl в каталоге Z:\WAMPServer\Apache\conf и перемещаем туда файлики my-server.key и my-server.cert из каталога Z:\WAMPServer\Apache\bin
16) В файле httpd.conf находим и раскоментируем строчку
LoadModule ssl_module modules/mod_ssl.soДалее идем в конец фала и видим там блок:<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
Приводим его к следующему виду:
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
SSLMutex default
SSLSessionCache none
</IfModule>
Далее в конце добавляем следующее:
<VirtualHost localhost:443>
SSLEngine On
SSLCertificateFile conf/ssl/my-server.cert
SSLCertificateKeyFile conf/ssl/my-server.key
</VirtualHost>
В конечном итоге это должно выглядеть как на картинке ниже:
17) Останавливаем Apache если он был запущен и запускаем его из командной строки с ключом -D SSL. Для этого даем команду
Z:\WAMPServer\Apache\bin>httpd.exe -D SSL
Запускать лучше из командной строки с ключом отладки SSL, чтобы можно было увидеть ошибки.
18) В строке браузера вводим https://localhost/ (именно HTTPS) и видим следующее (это при условии что у вас IE7):
Это означает что все работает. Просто нас предупреждают, что сертификат данного узла не был выпущен доверенным центром сертификации, и это правильно, так как сертификат выпустили мы сами :). Жмем Продолжить открытие этого веб-узла и видим следующую картинку:
Итак, все работает :)! Если у вас не заработало, то вдумчиво повторяем шаги с 1 по 18 пока не заработает :)