Руководство: Openssl в WampServer 2.5
Необходимое условие : Обычно нет необходимости устанавливать openssl (поставляется в комплекте с Wamp). Например, Apache 2.4.9 включает 1.0.1g.
Система-Variable
- Откройте панель системы Windows («WIN + Q»: система)> Дополнительные параметры системы> Дополнительно> Переменные среды
- Добавить новую запись в системные переменные с именем OPENSSL_CONF, а ее значением является путь к openssl.cnf (обычно что-то вроде C: \ wamp \ bin \ apache \ apache2.4.9 \ conf \ openssl.cnf)
структура папок openssl :
Настройка openssl.cnf :
- Я следовал Neil C. Obremski советам и очистил следующие значения по умолчанию:
- countryName_default (было "AU")
- stateOrProvinceName_default (было "Some-State")
- 0.organizationName_default (было "Internet Widgits Pty Ltd")
- organizUnitName_default (было уже пусто)
Создание сертификата :
В командной строке перейдите к C: \ wamp \ bin \ apache \ apache #. #. # \ Bin \ и вызовите "openssl req -new -out cacert.csr -keyout cacert.pem". При появлении запроса введите пароль и после этого информацию о DN, как показано ниже.
Loading 'screen' into random state - done
Generating a 1024 bit RSA private key
.......................++++++
....++++++
writing new private key to 'cacert.pem'
Enter PEM pass phrase: my_secret_pass
Verifying - Enter PEM pass phrase: my_secret_pass
`-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
`-----
Country Name (2 letter code) []:
State or Province Name (full name) []:
Locality Name (eg, city) []:
Organization Name (eg, company) []:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:local
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
C:\wamp\bin\apache\apache2.4.9\bin>
В том же окне консоли теперь используйте «openssl rsa -in cacert.pem -out cacert.key» и, если требуется, введите ранее введенный пароль.
Enter pass phrase for cacert.pem: my_secret_pass
writing RSA key
Удалите файл «.rnd» в C: \ wamp \ bin \ apache \ apache2.4.9 \ bin
- По-прежнему в том же окне вызывайте «openssl x509 -incacert.csr -out-cacert.cert -req -signkey cacert.key -days 365». Если вы видите следующую ошибку «невозможно написать« случайное состояние »». Это известная ошибка ! Чтобы обойти это, вызовите «set RANDFILE = .rnd» и повторите предыдущую команду.
Поздравляем, теперь вы являетесь владельцем самозаверяющего сертификата!
Я поместил встроенные файлы (они находятся в папке bin) в соответствии с этим Site :
- cacert.pem, cacert.key в C: \ wamp \ bin \ apache \ apache #. #. # \ Conf \ demoCA \ private
- cacert.cert, cacert.csr в C: \ wamp \ bin \ apache \ apache #. #. # \ Conf \ demoCA \ certs
В httpd.conf включить SLL (поиск "#Include conf / extra / httpd-ssl.conf") + изменить следующие записи в httpd-ssl.conf:
SSLSessionCache "shmcb:C:/wamp/logs/ssl_scache(512000)"
DocumentRoot "C:/wamp/www"
#ErrorLog
#TransferLog
SSLCertificateFile "C:/wamp/bin/apache/apache2.4.9/conf/demoCA/certs/cacert.cert"
SSLCertificateKeyFile "C:/wamp/bin/apache/apache2.4.9/conf/demoCA/private/cacert.key"
CustomLog "C:/wamp/logs/ssl_request.log" \
Теперь проверьте вашу установку Apache, вызвав httpd -t.
Если вы получаете следующую ошибку «SSLSessionCache: кеш сессии 'shmcb' не поддерживается (известные имена:). Может быть, вам нужно загрузить соответствующий модуль socache (mod_socache_shmcb?)." включите следующую запись «LoadModule socache_shmcb_module modules / mod_socache_shmcb.so» в httpd.conf
Wamp теперь настроен с поддержкой https: -)
Я также включил «LoadModule status_module modules / mod_status.so», используя следующую конфигурацию в httpd.conf:
<IfModule status_module>
ExtendedStatus On
<Location /server-status>
SetHandler server-status
</Location>
</IfModule>
Теперь вы можете проверить статус вашего сервера здесь
https://localhost/server-status/
Apache / 2.4.9 (Win64) OpenSSL / 1.0.1g PHP / 5.5.12 Сервер на локальном хосте Порт 443
Примечания :
- Я сделал это, пытаясь заставить его работать на моей машине (это была моя первая попытка использования OpenSSL на windows / wamp).
- Данное руководство не предназначено для производственных систем!
- Возможно, вам придется изменить несколько вещей, например имена, в зависимости от вашего openssl.cnf
- Мое намерение состояло не в том, чтобы создать лучший учебник, а в том, чтобы просто отметить все необходимые изменения для работы SSL в WAMP.
- Обязательно установите правильное количество дней для сертификата x509
- Я наконец-то знаю, почему АНБ может легко взломать серверы с таким сложным процессом: D
- Поскольку Wamp объединяет apache вместе с OpenSSL, возможно, лучше установить его отдельно *