Установка SSL в ПУВР сервера: ошибка в httpd-SSL-протокол.conf
Я пытаюсь установить ssl на локальном хосте, я последовал за http://madurad.wordpress.com/2014/04/25/redirect-http-to-https-with-wamp-server/ и многие другие, но не могут добиться успеха. я застрял в синтаксисе httpd-ssl.conf. мой сервер apache спускается, когда я устанавливаю
<Directory "c:/wamp/www/">
Options Indexes FollowSymLinks
AllowOverride all
Require all granted
SSLOptions +StdEnvVars
</Directory>
Я пробовал много других, как
<Directory "c:/wamp/www/">
SSLOptions +StdEnvVars
</Directory>
что проблема не в состоянии получить....
7 ответов
как настроить WAMPServer для использования HTTPS SSL
*это не тривиальный процесс. Этот учебник, надеюсь, заставит SSL работать на вас. Однако получение его правильно настроено, как только он работает, полностью зависит от вас.
дополнительное чтение для всех, кто путешествует по этой дороге
ОК
я основал этот учебник на создании сайта под названием www.вампелперс.Дев, так где же ты это видишь? имя измените его на имя сайта, которое вы пытаетесь защитить.
я начал с создания незащищенного сайта в \wamp\www\wamphelpers
добавил виртуальный хост для этого сайта в \wamp\bin\apache\apache{version}\conf\extra\httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "c:/wamp/www"
ServerName localhost
ServerAlias localhost
<Directory "c:/wamp/www">
AllowOverride All
Require local
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "c:/wamp/www/wamphelpers"
ServerName wamphelpers.dev
ServerAlias www.wamphelpers.dev
<Directory "c:/wamp/www/wamphelpers">
AllowOverride All
Require local
</Directory>
</VirtualHost>
добавил свое доменное имя к C:\windows\system32\drivers\etc\hosts
некоторые вирусные шашки блокируют доступ к файлу HOSTS, поэтому вам может потребоваться отключить проверку вирусов или настроить ее так, чтобы не блокировать файл hosts временно!--63-->.
127.0.0.1 wamphelpers.dev www.wamphelpers.dev
::1 wamphelpers.dev www.wamphelpers.dev
теперь перезапустите dnscache следующим образом из команды windows, запущенной с помощью "Запуск от имени администратора"
net stop dnscache
net start dnscache
затем создал простой скрипт в \wamp\www\wamphelpers\index.в PHP
<?php
echo 'Hello, this is the WAMPHELPERS.DEV site homepage';
?>
теперь для активации новых виртуальных хостов необходимо определить, изменить \wamp\bin\apache\apache{version}\conf\httpd.conf
и найти эту строку
# Virtual hosts
#Include conf/extra/httpd-vhosts.conf
и удалить #
комментарий характер, как так
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
сохранить файл.
теперь перезапустите Apache и убедитесь, что ваш простой незащищенный фактически размещенный сайт работает прежде чем продолжить.
инструментарий openssl. С OpenSSL.exe, ssleay32.dll и libeay32.dll файлы оснащены и находятся в C:\wamp\bin\apache\apachex.y.папка z\bin Это должно быть все, что вам нужно создать свой сертификат и подписать !!
: это не сработало для меня ни на одном из версии Apache, которые я установил. Я всегда получал это сообщение об ошибке.
где порядковый номер изменился в зависимости от папки версии apache, в которой я был.
если вы получаете эту ошибку, не волнуйтесь, это то, что вам нужно сделать.
установите последнюю версию OpenSSL TOOLKIT
это можно получить отсюда
Примечание: не использовать V1.1 версия еще, команда PHP еще не скомпилировала PHP с этими новыми связями, поэтому придерживайтесь V1.0.? версии, пока они не появятся.
выберите последнюю версию "Win32 OpenSSLv xxx Light" или "Win64 OpenSSLv xxx Light", чтобы соответствовать установленной версии WAMPServer, так как это все, что вам нужно.
это загрузит .exe-файл, который вы можете запустить для установки этого инструментария.
он задаст следующий вопрос, я предлагаю вам ответить на него так, чтобы вы не заканчивайте установку чего-то в C:\windows\system32 - ... В конце концов, это инструментарий, и он меняется достаточно часто. Лучше всего держать эти вещи отдельно и не делать их глобальными.
после установки (в какую бы папку вы ни указали в установке) вы должны быть готовы начать процесс генерации ключей и сертификатов!
генерация ключей и Сертификаты.
Шаг 1: Создайте закрытый ключ RSA
Сначала нам нужно создать себе сертификат. Обычный (оплаченный) процесс-создать сертификат, а затем передать его в центр подписи. Вот почему это стоит денег, как они должны делать, из-за dilligence, чтобы проверить, что вы тот, кто вы говорите, и что сайт, на котором вы будете использовать сертификат, является реальным и законным.
инструментарий openssl используется для создайте закрытый ключ RSA и CSR (запрос подписи сертификата), который будет использоваться для нашего сертификата. Первый шаг-создать закрытый ключ RSA. Этот ключ представляет собой 1024-битный ключ RSA, который шифруется с помощью Triple-DES и хранится в формате PEM, так что он читается как текст ASCII.
откройте окно команд (окно Dos) с помощью [b]Запуск от имени администратора [/b] Измените каталог, в котором вы установили OpenSSL Toolkit выше. В моем случае это
CD c:\apps\OpenSSL-Win32\bin
сделать папка для вывода, который нужно поместить ( чтобы сохранить папку bin в порядке ), я использовал веб-сайт
md website
теперь введите следующую команду:
openssl genrsa -out website\server.key 2048
это должно было создать файл в папке веб-сайта под названием server.ключ, без ключа фразы пароля, проверьте его существование.
Шаг 2: Создайте CSR (запрос подписи сертификата)
во время генерации CSR вам будет предложено несколько единиц информации.
Эти Х. 509 атрибуты сертификата.
Одно из приглашений будет для " общее имя (например, сервер FQDN или ваше имя) []:".
важно, чтобы это поле было заполнено полным доменным именем сервера, защищаемого SSL.
Поэтому, если сайт будет защищен, будет https://www.wamphelpers.dev
, а затем введите www.wampheplers.dev
в этой строке. Я использовал wamphelper.dev
мой ServerName
is ServerName wamphelpers.dev
не вводите ничего на вопрос:вызов пароль []:] Просто нажмите Enter. Если вы вводите парольную фразу Здесь, когда вы приходите, чтобы начать Apache с SSL настроен Apache не запустится и даст это сообщение об ошибке: -
[ошибка] Init: sslpassphrasedialog builtin не поддерживается на Win32
в основном, если вы вводите парольную фразу, Apache должен бросать вам вызов за эту парольную фразу каждый раз, когда она начинается. Это, очевидно, не сделает вашу жизнь проще, но в первую очередь на windows это не так на самом деле работать и будет причина сбоя Apache при попытке запросить парольную фразу с вышеуказанной ошибкой.
команда для создания CSR выглядит следующим образом:
openssl req -new -key website\server.key -out website\server.csr
Example question and answers:
Country Name (2 letter code) [AU]:GB
State or Province Name (full name) [Some-State]: Hampshire
Locality Name (eg, city) []: Portsmouth
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Wamp Helpers Ltd
Organizational Unit Name (eg, section) []: Information Technology
Common Name (e.g. server FQDN or YOUR name) []: wamphelpers.dev
Email Address []: me@wamphelpers.dev
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: ( leave blank just hit the enter key )
An optional company name []: ( leave blank just hit the enter key )
Шаг 3: Создание Самозаверяющего сертификата
на этом этапе вам потребуется создать самозаверяющий сертификат, потому что вы либо не планируете иметь сертификат, подписанный CA, либо хотите протестировать Ваша новая реализация SSL во время подписания CA ваш сертификат.
ПРЕДВАРИТЕЛЬНОЕ ПРЕДУПРЕЖДЕНИЕ Этот сертификат будет генерировать ошибку в браузере клиента в том смысле, что центр сертификации подписи неизвестен и не является доверенным. Это неизбежно, поскольку мы подписываем сертификат сами, но, конечно, сеть доверия не знает, кто мы. см. пример ниже в этом документе, показывающий, как сообщить вашему браузеру, что вы действительно доверяете этому сертификат
openssl x509 -req -days 365 -in website\server.csr -signkey website\server.key -out website\server.crt
Example output:
Loading 'screen' into random state - done
Signature ok
subject=/C=GB/ST=Hampshire/L=Portsmouth/O=WampHelpers Ltd/OU=Information Technology/CN=www.wamphelpers.dev/emailAddress=riggsfolly@wamphelpers.dev
Getting Private key
Шаг 4: Установка закрытого ключа и сертификата
создайте эти 2 каталога в версии Apache, которую вы используете.
md c:\wamp\bin\apache\apachex.y.z\conf\ssl.key
md c:\wamp\bin\apache\apachex.y.z\conf\ssl.crt
и скопируйте файл, который мы только что создали, в них так:
copy website\server.crt c:\wamp\bin\apache\apachex.y.z\conf\ssl.crt
copy website\server.key c:\wamp\bin\apache\apachex.y.z\conf\ssl.key
Шаг 5: настройте Apache для активации SSL
изменить httpd.conf, проверьте, что эта строка раскомментирована
LoadModule authn_socache_module modules/mod_authn_socache.so
LoadModule ssl_module modules/mod_ssl.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
удалить комментарий " # " из этой строки также
Include conf/extra/httpd-ssl.conf
затем переместите эту строку после этого блока .... вот так!--44-->
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
# Secure (SSL/TLS) connections
Include conf/extra/httpd-ssl.conf
Шаг 6: настройте PHP для активации SSL
отредактируйте свой php.ini (используйте меню wampmanager, чтобы отредактировать правильное )
удалить комментарий ';' из этой строки
extension=php_openssl.dll
Шаг 7: настройте виртуальный хост защищенных сайтов
Yup для всех вас виртуальных Хозяин nay sayers, теперь вы не можете избежать процесса.
редактировать \wamp\bin\apache\apachex.y.z\conf\extra\httpd-ssl.conf
этот файл выпущен Apache и содержит некоторое местоположение файла по умолчанию. Мы можем оставить большую часть этого файла как есть, но нам нужно настроить виртуальный хост здесь, чтобы соответствовать нашему фактическому местоположению сайтов и нескольким другим вещам так:
найти эти строки
DocumentRoot "c:/Apache2/htdocs"
ServerName www.example.com:443
ServerAdmin admin@example.com
ErrorLog "c:/Apache2/logs/error.log"
TransferLog "c:/Apache2/logs/access.log"
и меняем их на
DocumentRoot "c:/wamp/www/wamphelpers"
ServerName wamphelpers.dev:443
ErrorLog "c:/wamp/logs/ssl_error.log"
TransferLog "c:/wamp/logs/ssl_access.log"
найти
SSLCertificateFile "c:/Apache2/conf/server.crt"
и изменить к
SSLCertificateFile "c:/wamp/bin/apache/apachex.y.x/conf/ssl.crt/server.crt"
найти
SSLCertificateKeyFile "c:/Apache2/conf/server.key"
и заменить на
SSLCertificateKeyFile "c:/wamp/bin/apache/apachex.y.x/conf/ssl.key/server.key"
найти
<Directory "c:/Apache2/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
и заменить на
Синтаксис Apache 2.2
<Directory "c:/wamp/www/wamphelpers">
SSLOptions +StdEnvVars
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order Deny,Allow
Deny from all
Allow from 127.0.0.1 localhost ::1
</Directory>
Синтаксис Apache 2.4
<Directory "c:/wamp/www/wamphelpers">
SSLOptions +StdEnvVars
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require local
</Directory>
найти
SSLSessionCache "shmcb:c:/Apache2/logs/ssl_scache(512000)"
SSLSessionCacheTimeout 300
и меняем его на
SSLSessionCache "shmcb:c:/wamp/logs/ssl_scache(512000)"
SSLSessionCacheTimeout 300
найти
CustomLog "c:/Apache24/logs/ssl_request.log" \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
и заменить на
CustomLog "c:/wamp/logs/ssl_request.log" \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
в основном смотрю через файл conf и любая команда, которая не закомментирована, но имеет ссылку на файл или папку следует изменить, чтобы ссылаться на структуру папок WAMPServer, а не 'C:/Apache2 - ... ...'
теперь убедитесь, что все эти файлы, которые мы изменили, сохранены, и перезапустите Apache с помощью меню wampmanager.
первый тест, что незащищенное место.
затем попробуйте использовать новый защищенный сайт, добавив "https://" в передней части домена имя
т. е. https://www.wamphelpers.dev
без одинарных кавычек, конечно.
если Apache не перезапускается вы, вероятно, написали что-то не так. Проверьте конфигурации следующим образом: -
откройте командное окно
cd \wamp\bin\apache\apachex.y.z\bin
httpd -t
это будет анализировать все файлы config и должно дать вам имя файла и номер строки, где была найдена ошибка.
исправьте это и повторите попытку.
Первый доступ к вашему сайту создаст страницу сообщения что-то вроде этого. Это использование FireFox, другие будут немного отличаться, но концепция это то же самое.
это потому, что ваш сертификат не подписан доверенным органом, не паникуйте, это должно произойти.
нажмите "я понимаю риск" , и это покажет вам кнопку с надписью "добавить исключение" Нажмите кнопку Добавить исключение, после проверки того, что сведения о сайте сертификатов фактически являются вашими, и ты не увидишь. это сообщение снова, если вы не очистите список исключений.
БОЛЬШОЙ Начиная с Apache v2.2.12 и OpenSSL v0.9.8 j теперь можно защитить более одного сайта на экземпляр Apache. Этот учебник не охватывает этот процесс. Подробнее см. здесь:
и, как я сказал в верхней части, теперь вам нужно сделать некоторые переустановите все параметры, доступные в конфигурации SSL, и заставьте вещь работать так, как вы хотите, а не использовать значение по умолчанию.
необходимо активировать модуль LoadModule socache_shmcb_module modules/mod_socache_shmcb.так что ... в файле httpd.conf в wampserver 2.5. Если не apache бросает следующее сообщение:
AH00526: синтаксическая ошибка в строке 75 C:/wamp/bin/apache/apache2.4.9/conf/extra/httpd-ssl - ... conf: SSLSessionCache: кэш сеанса "shmcb" не поддерживается (известные имена: ). Возможно, вам нужно загрузить соответствующий модуль socache (mod_socache_shmcb?).
@RiggsFolly: некоторые небольшие ошибки / опечатки / дополнения в вашем учебнике. Ниже используется в сочетании с WAMPServer 2.5 64bits (Apache 2.4.9 и PHP 5.5.12) на Windows 7 SP1 64bits:
-httpd-vhosts.conf находится в extra / httpd-vhosts.conf
- при попытке изменить файл hosts обязательно отключите любой virusscanner. Некоторые из них блокируют доступ к файлу hosts.
- обязательно откройте texteditor в качестве администратора при редактировании файла hosts или вы получаете ошибку при попытке сохранить.
- Не забудьте удалить # в начале строки хоста, если таковые имеются
- Если вы используете wampserver 64bit, обязательно загрузите 64-битную версию OpenSSL
-шаг openssl genrsa-out website\server.ключ 2048 создает сервер.ключевой файл, а не privkey.Пем!
- файл \wamp\bin\apache\apachex.г.з\конф\файл httpd-SSL-протокол.conf находится в \ПУВР\бин\Апач\apachex.г.з\конф\дополнительную\файл httpd-SSL-протокол.conf (возможно, это зависит от версия WAMPServer)
-Мне пришлось использовать разные порты для http(80->8080) и https (443->444) в качестве этих портов, где я думаю, Skype. Когда вы используете разные порты, обязательно используйте их везде, где вы видите 80 или 443 в этом уроке
-Мне также пришлось включить socache_shmcb_module. Об этом также упоминал" httpd-t".
Если у вас есть ошибка что-то вроде этого:
Cannot load modules/mod_ssl.so into server: The specified module could not be found.
вы можете попытаться найти libeay32.dll в папке wamp, вы, вероятно, найдете его в {папка wamp} / bin/php/php{версия 7}/
скопировать файл libeay32.dll и ssleay32.dll и вставьте их в папку {WAMP}/bin/apache / apache{версия 2.х}/bin/ и {ПУВР папки}/Бен/РНР/PHP в{верион 5.икс.} Убедитесь, что вы резервное копирование все, что вы размещаете.
запустить httpd-t и проверьте синтаксис
примечание: Я считаю, что это связано с ошибкой в части Apache openssl для wamp 3.0.6. К счастью, в папке php7 эти DLL совместимы для apache и php5.
@RiggsFolly: Самозаверяющий сертификат с ключом может быть легко сгенерирован, например, здесь... http://www.selfsignedcertificate.com/, поэтому я мог бы начать учебник с шага 4 (у меня также был стандарт :80 virtual server running).
в любом случае некоторые упомянутые вещи уже были включены в установке WAMP по умолчанию (я думаю, что он меняется от версии к версии), но остальное мне очень помогло. И на самом деле одной вещи не хватало... Мне тоже пришлось раскомментируйте следующую строку в " httpd.conf"
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
Если у вас есть ошибки :
вы должны :Не удается загрузить модули / mod_ssl.Итак, в сервер: операционная система не удается запустить %1
- установить Win32 OpenSSL здесь http://slproweb.com/products/Win32OpenSSL.html
- копировать / вставить libeay32.dll, ssleay32.dll в папку WAMP php bin (C:\wamp64\bin\php\php5.6.19)
- перезапустить apache
Примечание: Проверено на сервере Wamp 3
прежде всего:
1).Выключите WAMP и перейдите к C:\wamp\scripts\config.inc.php
переместить из массива libeay32.dll
,ssleay32.dll
, 133,139 строки
2).Установите OpenSSL с официального сайта, обратите внимание на версию вашей ОС x64 или нет.
запрос:3).cd C:\wamp\bin\apache\apache2.4.23\bin
4). openssl req -new > localhost.csr
5). openssl rsa -in privkey.pem -out localhost.key
6). openssl x509 -in localhost.csr -out localhost.crt -req -signkey localhost.key -days 365 -sha256 -extfile v3.ext
обновление: от Chrome 58 нам нужно будет предоставить Subject Alternative Name
.
Это имя мы можем получить из extension file v3.ext
:
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = 127.0.0.1
DNS.2 = localhost
очень важно в общем имени вставить "localhost"
7).Возьмите на localhost.ключ и localhost.crt и поставить их на C:\wamp\bin\apache\apache2.4.23\conf\key
(конечно, перед созданием соответствующего каталога)
конфигурация:
8).включить в C:\wamp\bin\apache\apache2.4.23\bin\php.ini
и
C:\wamp\bin\php\php5.6.25\php.ini
extension=php_openssl.dll
9).перейти к C:\wamp\bin\apache\apache2.4.23\conf\httpd.conf
и раскомментируйте:
LoadModule ssl_module modules/mod_ssl.so
,
Include conf/extra/httpd-ssl.conf
,
Include conf/extra/httpd-vhosts.conf
,
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
10). перейти к C:\wamp\bin\apache\apache2.4.23\conf\extra\httpd-ssl.conf
и внести изменения :
SSLSessionCache "shmcb:c:/wamp/bin/apache/apache2.4.23/logs/ssl_scache(512000)"
,
SSLSessionCacheTimeout 300
,
VirtualHost _default_:443
,
DocumentRoot "c:/wamp/www/"
,
ServerName localhost:443
,
ErrorLog "c:/wamp/bin/apache/apache2.4.23/logs/ssl_error.log"
, (создать файл, если не существует)
TransferLog "c:/wamp/bin/apache/apache2.4.23/logs/access.log"
,
SSLCertificateFile "c:/wamp/bin/apache/apache2.4.23/conf/key/localhost.crt"
,
SSLCertificateKeyFile "c:/wamp/bin/apache/apache2.4.23/conf/key/localhost.key"
,
<Directory "c:/wamp/www/">
SSLOptions +StdEnvVars
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require local
</Directory>
,
CustomLog "c:/wamp/bin/apache/apache2.4.23/logs/ssl_request.log"
обработка сертификат:
11).нажмите Win+R и вставьте команду certmgr.msc', импорт servercert.crt в "Доверенные корневые сертифицированные органы"
12). Проверьте свой сервер в командной строке "httpd-t" должен быть "синтаксис OK"
13). Запустите Wamp и перейдите по ссылке https://localhost
я надеюсь, это поможет
Примечание: пожалуйста, прочитайте эту статью о поведении в Mozilla :
https://blog.mozilla.org/security/2014/09/23/phasing-out-certificates-with-sha-1-based-signature-algorithms/