Показаны сообщения с ярлыком SSL. Показать все сообщения
Показаны сообщения с ярлыком SSL. Показать все сообщения

суббота, 11 июня 2016 г.

OpenSSL для Apache под Windows Server

 

При генерации сертификата вылетала вот такая ошибка:

WARNING: can't open config file: c:/openssl-1.0.2g-win64/ssl/openssl.cnf

Решение в моем случае было таким:

set OPENSSL_CONF=D:\iServer\Apache\conf\openssl.cnf

надо было прописать в переменную окружения путь к файлу конфига

найдено тут http://impradeep.com/warning-cant-open-config-file-copenssl-1-0-1esslopenssl-cnf/

WARNING: can’t open config file: c:/openssl-1.0.1e/ssl/openssl.cnf
Unable to load config info from c:/openssl-1.0.1e/ssl/openssl.cnf

This error occurs mainly on windows when you are using openssl package, The reason is that openssl failed to locate the openssl.cnf file.

There is an environment variable called OPENSSL_CONF that can be set.

I will recommend that you do the following (one windows only)

In my case I set the environment variable like this –
set OPENSSL_CONF=E:\ApacheSoftwareFoundation\Apache2.2\conf\openssl.cnf

A tricky part of getting it to work is with the openssl.cnf file itself. Windows shows it as a file type “SpeedDial” and hides the extension so the filename looks like it is just “openssl”. I tried renaming it to “openssl.cnf”. That looks correct in windows explorer but if you look at the filename in a dos window the actual filename became “openssl.cnf.cnf”. So even though Windows shows the name without the .cnf extension it is there. That was confusing because I have my explorer set to not hide file extensions.

Remember that every-time you open a command prompt you have to run the above command unless you set this as your environment variable.

 

И кроме того после настройки сертификатов так Apache не запускался по ошибке:

Invalid command 'SSLMutex', perhaps misspelled or defined by a module not included in the server configuration

Ошибка была тут SSLMutex default

Эта команда не поддерживается после Apache 2.2 вместо нее надо использовать

Mutex default

Решение найдено тут http://stackoverflow.com/questions/13969272/apache-sslmutex-issue

пятница, 2 августа 2013 г.

понедельник, 14 января 2008 г.

Установка Apache + OpenSSL на Windows

Речь пойдет о дистрибутиве 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 пока не заработает :)