Установка сервера Апач и сертификата SSL в Липецке
На этой странице мы рассмотрим основные вопросы по установке сервера Апач (Apache) 2.4 с php7 на Windows 7 и бесплатного сертификата SSL от sslforfree на сайт.
- Ограничения и условия применяемости данной инструкции.
- История мучений, связанных с установкой сервера и сертификата.
- Установка сервера.
- — скачка необходимых компонентов с оф. сайтов;
- — установка Visual Studio C++;
- — установка апача 2.4;
- — установка пхп.
- Запуск сайта.
- Установка сертификата SSL.
- Переезд сайта на https.
- — Часто задаваемые вопросы по переезду сайта на https.
- Сроки и денежка за установку сервера и SSL.
Помощь в установке сервера
Техработы и бытовые услуги
Специфика выполнения технических работ и бытовых услуг на заказ: перечень выполняемых работ,Ограничения и условия применяемости данной инструкции
А только тем, кто имеет следующее оборудование:
- компьютер с установленной на нём
Windows 7; - папку с файлами сайта;
- статический IP-адрес;
- доменное имя;
- работающий сайт на другом компьютере.
А чего НЕ имеет:
- КМС;
- баз данных;
- хостинга.
Краткая история моих мучений, связанных с установкой сервера и сертификата
До начала всех мытарств на компе стоял
Это был кошмарный ужас. Я поразился низкому уровню квалификации липецких вебмастеров (впрочем, не исключаю, что они все такие). Куда бы я не пришёл, тамо происходил примерно такой разговор:
- — Сертификат сможете мне на сайт поставить?
- — Конечно! Какой у вас хостинг?
- — (скромно отводя глаза) У меня его нету. Есть сервер.
- — (озадаченно) Ну, у вас есть сайт?
- — Да, на сервере.
- — (ещё более озадаченно) Мне надо подумать.
Через два дня раздумий мне неизменно отвечали, что ничем не смогут мне помочь, и я отправлялся в следующую веб-студию. Так прошло полгода.
Походы окончились после диалога следующего содержания, в процессе которого можно было наблюдать развитие всех эмоциональных состояний у обеих сторон диспута, как в том анекдоте:
- — ...У меня хостинга нету, есть сайт, он на сервере, сервер на ноуте.
- — (пауза) Он у вас с собой?
- — (раздражённо) Сервер на ноуте, ноут на подоконнике, он подключен к интернету. Вы можете сейчас выйти на него через браузер.
- — (офигевая) Так он же должен быть ВСЁ ВРЕМЯ подключён!
- — (скучая) Так он и подключён.
- — Мне надо подумать...
Резюме: всё надо делать самому.
И вот я засел за изучение работы сертификатов...
[тут пропущен довольно объёмный кусок матерного текста месяца на полтора].
Поскольку на нашем сайте принципиально всё бесплатное, я скачал сертификат с сайта sslforfree.com, поставил его, перенастроил апач, добился того, что он стал открываться через https, и обрадовался. Проблемы возникли, когда я стал проверять работу сертификата. Выяснилось, что все уже давно пашут по протоколу шифрования TLS2, а у меня всё TLS1, в результате чего сертификат, как бы это выразиться, как мёртвому припарки. Я попытался раскочегарить TLS2, и тут обнаружилось, что апач не поддерживает TLS2 до
Сейчас, после всего, я думаю, что можно было просто обновить апач, вместо того, чтобы ставить новый. Хотя — кто знает? — может быть, обновление вылилось бы в ещё большие проблемы.
Итак, решил я снести старьё и поставить упорно рекомендуемый всеми
Установка Апач 2.4 на Windows 7
Помощь в установке сервера
Внезапно оказалось, что апач, пхп и Visual
На всякий случай сведения по соответствию версий VC годам выпуска:
- vc15: компилятор в комплекте с Visual Studio 2017
- vc14: компилятор в комплекте с Visual Studio 2015
- vc12: компилятор в комплекте с Visual Studio 2013
- vc11: компилятор в комплекте с Visual Studio 2012
- vc10: компилятор в комплекте с Visual Studio 2010
На момент моих мучений последними были версии
Рекомендуется использовать приведённые далее пути, загружая папки и файлы туда, куда написано, чтобы потом не удивляться, что всё не работает.
Скачка Apache, PHP и Visual Studio C++.
Официальные сайты разработчиков для скачивания упомянутых продуктов: В результате манипуляций по скачиванию у вас образовались файлы
- httpd-2.4.41-win32-VC14.zip
- php-7.2.25-Win32-VC15-x86.zip
- VC_redist.x86-1.exe
Установка Visual Studio C++.
Рекомендуется устанавливать новые версииЗапускаем программу VC_redist.x86-1.exe и следуем рекомендациям мастера-установщика.
Установка апача 2.4.
До тех пор, пока сайт не заработает в браузере, я настоятельно рекомендую производить инсталляцию и запуск апача через командную строку. Причина: пока не работает апач, логи ошибок не пишутся. Поэтому командная строка — единственный способ узнать, почему ничего не работает. Она хотьКомандная строка открывается одним из следующих способов:
- пуск >> все программы >> стандартные >> командная строка;
- клавиши «ВИН+R» >> в открывшемся окне ввести «cmd.exe» >> нажать «ОК»
Командная строка должна быть запущена от имени администратора, иначе апач не инсталлируется.
Рекомендую следующие магические фразы скопировать и сохранить
- C:\Apache24\bin\httpd.exe -k install
- C:\Apache24\bin\httpd.exe -k start
- C:\Apache24\bin\httpd.exe -k restart
Положение внезапно осложняется тем, что новые версии апача
Итак.
- Распаковываем скачанный архив.
- Извлекаем из него папку с названием «Apache24» и помещаем её на диск C, остальное выкидываем. Получается примерно следующее: Увеличить скриншот
- В текстовом редакторе открываем файл
C:\Apache24\conf\httpd.conf
В нём производим следующие правки (по минимуму):ServerAdmin наш@имайл
ServerName localhost:80 - Проверяем доступность портов на компьютере. Порты смотрятся там:
пуск >> панель управления >> брандмауэр >> дополнительные параметры.
Если на 80-й или 443-й локальный порт навешено что-нибудь кроме апача, ЭТО следует отключить (часто это бывает skipe). Упомянутые порты должны быть открыты для апача. - Отключаем антивирус и брандмауэр полностью, чтобы не возникало напрасных подозрений, если
что-то не заработает. - В командной строке вводим (см. выше):
и нажимаем кнопку «ENTER». Если появилось диалоговое окно с сообщением об отсутствии файлаC:\Apache24\bin\httpd.exe -k install чётотам.dll, значит, проблемы сVisual C ++. Если инсталляция прошла успешно, мы увидимчто-то вроде В ином случае исправляем тучи ошибок, которые я уже не помню.(c) Корпорация Майкрософт (Microsoft Corporation), 2015 r. Все права защищены C:\WINDOWS\system32>c:\Server\bin\Apache24\bin\httpd.exe -k install
Installing the *Apache2.4’ service
The 'Apache2.4' service is successfully installed.
Testing httpd.conf....
Errors reported here anust be corrected before the service can be started.
C:\WIMDOWS\system32>c:\5erver\bin\Apache24\bin\httpd.exe -k start
C:\WINDQWS\syste«i32>
- Запускаем апач, введя в командной строке:
и нажимаем кнопку «ENTER». Если апач не заработал, исправляем тучи ошибок, которые я уже не помню.C:\Apache24\bin\httpd.exe -k start - Проверяем работу апача. Открываем браузер и в адресной строке вводим
http://localhost/
В ответ должна появиться вожделённая стартовая страница апача с надписью «Оно работает!!!»:Увеличить скриншот - (Опционально) добавляем в автозагрузку программу
C:\Apache24\bin\ApacheMonitor.exe
После этого в трее будет самопоявляться значок апача, которым можно управлять работой программы:Увеличить скриншотточка-то меняет цвет с красного на зелёный!
Установка PHP 7.
Установка PHP производится опционально — в природе есть сайты, не требующие пхп для своей работы. Если надобности в пхп нет, этот раздел можно пропустить.- Создаём на диске C папку с именем «php7»: Увеличить скриншот
- Помещаем туда скачанный архив пхп и распаковываем его. В результате папка заполняется файлами пхп.
- Соединяем апач с пхп. В текстовом редакторе открываем тот же файл
C:\Apache24\conf\httpd.conf
В него добавляем строки:LoadModule php7_module "C:/php7/php7apache2_4.dll" PHPIniDir "C:/php7"
AddHandler application/x-httpd-php .php
AddType application/x-httpd-php .php .html
- Производим перезапуск (или запуск) апача, написав в командной строке
и нажимаем кнопку «ENTER». Исправляем тучи ошибок, которые я уже не помню.C:\Apache24\bin\httpd.exe -k restart
Запуск сайта
Помощь в установке сервера
- В текстовом редакторе открываем тот же файл
C:\Apache24\conf\httpd.conf
Для работы сайта в нём много чего придётся изменить, но, поскольку было заявлено, что у нас уже есть работающий сайт на апаче, я просто заменил дефолтный конфиг старым. Тут нас подкарауливает ещё одна незадача: разработчики изменили некоторые правила конфига. Список изменений для беглого ознакомления прилагается. Поэтому в моём случае пришлось внести некоторые правки.Не забываем после каждой правки конфига перезапускать апач.
- Включаем интернет.
- Открываем браузер и в адресной строке вводим
http://имясайта.домен/
(предполагается, что у сайта есть домен), в ответ на что браузер с готовностью выдаёт нам главную страницу сайта. Если НЕ выдаёт, смотрим лог ошибок апача. Если это не помогает, колдуем с конфигом. Как колдовать с конфигом, есть рекомендация Берём большой кусок правил конфига и осторожно выковыриваем его из файла. Перезапускаем апач. Если не заработало, выковыривем следующий кусок. И т.д. Так находим место с ошибкой. После исправления не забываем по очереди возвращать куски на место. для идиотов, к коим я и сам отношусь, ☺. - Проверяем работу пхп. Ищем на страницах сайта результат работы пхп-скриптов, и если его не находим, колдуем с пхп. Тут рекомендаций выдавать не буду, всё это не стандартизируется.
Установка бесплатного сертификата SSL от sslforfree
Помощь в установке сервера
Насколько я помню, роботов два, но как их зовут, я уже не помню. Поэтому, обновляя сертификат, я просто удаляю из конфига все запреты, а после установки сертификата возвращаю их на место.
А, вот, нашёл исключение для входящих запросов на мой ИП-адрес:
RewriteCond %{HTTP_REFERER} мойИП RewriteCond %{HTTP_USER_AGENT} !(Sectigo|COMODO) RewriteRule ^(.*)$ – [F,L] |
Итак, понеслась!
- Открываем сайт zerossl.com и делаем все дела:
Нажимаем на ссылку
Увеличить скриншотВводим имя сайта
Увеличить скриншотНужно добиться появления зелёных галочек с помощью тычков в поле ввода
Увеличить скриншотТам уже выбрано всё что надо, осталось только жать на кнопку
Увеличить скриншотЕсли примерно в этом месте сайт пишетчто-нибудь нехорошее, что, мол, кукиш вам, а не сертификаты, смотреть этот раздел.Увеличить скриншотУвеличить скриншотНадо выбрать способ верификации: через
е-майл, ДНС или загрузкойтхт-файла на сайтУвеличить скриншотЯ выбрал способ с загрузкой файла
В белом прямоугольнике — инструкция. Тут всё по стандарту: скачайте файл, создайте в корне сайта папку .well-known, в ней — папку pki-validation, туда загрузите скачанный тхт-файл, нажмите на ссылку, чтобы проверить, открывается ли онУвеличить скриншотМомент истины. Осталось только найти ссылку на скачивание
Если на этой странице долго ничего не происходит, значит,сертификата ☺ что-то пошло не так (смотреть предупреждение в начале).Увеличить скриншотСкачка сертификата
Если всё прошло хорошо, появится это:Увеличить скриншот - Распаковываем скачанный архив. Извлекаем из него три файла:
- ca_bundle.crt
- certificate.crt
- private.key
C:\Apache24\conf\
- Переименовываем файл certificate.crt на, например, server.crt
- В текстовом редакторе открываем тот же файл
C:\Apache24\conf\httpd.conf
В нём добавляем что-то типа: Настройки, выделенные красным, можно менять опционально.LoadModule ssl_module modules/mod_ssl.soListen 80
Listen 443
- AddType application/x-x509-ca-cert .crt
- AddType application/x-pkcs7-crl .crl
-
- DocumentRoot "C:/сайт"
- ServerName имясайта.домен:443
-
- SSLRequireSSL
-
- SSLEngine on
- SSLProtocol all -SSLv2 -SSLv3 -TLSv1
-
SSLCipherSuite "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA" - SSLCertificateFile "C:/Apache24/conf/server.crt"
- SSLCertificateKeyFile "C:/Apache24/conf/private.key"
- SSLHonorCipherOrder on
-
- RewriteEngine On
-
-
-
По поводу mod_rewrite.c. У меня нет виртуальных хостов, но
из-за ссл пришлось создать. В результате в модулеmod_ssl.c появился пустой блокmod_rewrite.c, без которого не работают редиректы, общие для http и https. - Производим перезапуск (или запуск) апача с помощью значка ApacheMonitor. Если краснокожий не запускается, значит,
что-то намудрили в конфиге. - Проверяем лог ошибок апача, расположенный по адресу
C:\Apache24\logs\error.log
В нём могут появиться проблемы, связанные с ненахождением файлов сертификатов. В этом случае проверяем пути. - Открываем браузер и в адресной строке вводим
http://имясайта.домен/
и проверяем доступность сайта по протоколу http через80-й порт. Если сайт доступен, вздыхаем с облегчением.Дальнейшие действия можно производить уже на рабочем сайте - В адресной строке браузера вводим
https://имясайта.домен/
и проверяем доступность сайта по протоколу https через443-й порт. Если сайт недоступен, возвращаемся назад и тупо смотримна новые ворота, что не так. На всякий случай стоит убедиться, что проверяющий браузер поддерживает разрешённый в конфиге протокол шифрования. Для начала стоит включить в браузере все доступные протоколы.
Проверка работы сертификата.
В связи с жуткостью возникающих проблем вынес это в отдельный пункт. На- Проверяем в разных браузерах, есть ли вожделённый зелёный замочек в адресной строке при заходе на сайт по https: Увеличить скриншот
- Проверяем качество сертификата на сервисе контроля сертификатов ssllabs.com На сегодняшний день это единственный сервис, дающий реальную проверку качества. В ответ на запрос
https://имясайта.домен/
сайт после долгих раздумий выдаст намчто-то типаУвеличить скриншотУдалить кеш
Увеличить скриншотОтдельно о протоколах шифрования. Здесь перед нами отрывается определённая альтернатива: чем современнее протоколы, разрешённые сервером, тем выше качество сертификата, но сервер не пускает на сайт браузеры, не поддерживающие современные протоколы. Я
всё-таки рекомендую поддерживать все устаревшие протоколы при условии, что качество сертификата остаётся в зоне «A» (но усамого-то стоитсертификат категории «B») ☺. - Не забываем проверить вход на сайт с разных телефонов,
т.к. мобильные браузеры довольно болезненно относятся к сертификатам низкой категории качества.
Установка сертификата ССЛ с помощью робота Certbot
Помощь в установке сервера
Всё было хорошо примерно года полтора, пока в один прекрасный вечер при очередной попытке обновить сертификат сайт в космос
- Отключаем запреты в файле C:\Apache24\conf\httpd.conf чтобы робот прорвался таки к вашему сайту.
- Установка сертбота. На сайте https://certbot.eff.org выбрать свой сервер и операционку. В распложенной ниже инструкции появится ссылка на скачку, например, так: https://dl.eff.org/certbot-beta-installer-win_amd64.exe Дальше по инструкции.
- Переписка с сервером сертбота выглядит примерно так: C:\Users\User>certbot renew
Saving debug log to C:\Certbot\log\letsencrypt.log
C:\Users\User>certbot certonly --webroot --webroot-path /sajt --renew-by-default --email mail@artgraphicum.su --text --agree-tos -d www.artgraphic.su -d artgraphic.su
Saving debug log to C:\Certbot\log\letsencrypt.log
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o:
Y
Account registered.
C:\Users\User>certbot certonly --webroot-path /sajt --renew-by-default --email mail@artgraphicum.su --text --agree-tos -d www.artgraphic.su -d artgraphic.su
Saving debug log to C:\Certbot\log\letsencrypt.log
How would you like to authenticate with the ACME CA?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: Spin up a temporary webserver (standalone)
2: Place files in webroot directory (webroot)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
2
Requesting a certificate for www.artgraphic.su and artgraphic.su
C:\Users\User>certbot certonly --webroot --webroot-path C:/sajt --renew-by-default --email mail@artgraphicum.su --text --agree-tos -d www.artgraphic.su -d artgraphic.su -d www.artgraphic.su
Saving debug log to C:\Certbot\log\letsencrypt.log
Requesting a certificate for artgraphic.su and www.artgraphic.su
Successfully received certificate. - В результате на компе по адресу как-нибудь типа C:\Certbot\live\... образуется папка с файлами сертификатов. Трогать их настоятельно не рекомендуется.
- На всякий случай дубликаты файлов хранятся по адресу C:\Certbot\archive\...
- В файле C:\Apache24\conf\httpd.conf надо проверить пути к файлам сертификатов.
- В логах апача находим записи, сделанные роботами при обращении к сайту. Их надо прописать в исключения запретов в файле C:\Apache24\conf\httpd.conf.
- В файле C:\Apache24\conf\httpd.conf не забываем включить запреты снова.
Конечно, когда-нибудь лавочку с бесплатной сертификацией прикроют, и тогда придётся либо платить, либо возвращаться на http.
Обновление сертификата.
- Отключаем запреты в файле C:\Apache24\conf\httpd.conf Робот пытается грузить какие-то временные файлы по адресу /.well-known/acme-challenge/cMSGhmGdmn2nWo... эта папка должна быть доступна. Юзер-агент робота: Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org), он тоже не должен быть под запретом.
- Переписка с сервером сертбота выглядит примерно так: Увеличить скриншот
- В файле C:\Apache24\conf\httpd.conf не забываем включить запреты снова.
- Проверяем работу сайта и срок годности сертификата с помощью ssllabs.com
Что-то ssllabs.com опять не отзывается, та же ссылка на другой сайт: 2whois.ru
Переезд сайта на https
Помощь в установке сервера
- На всех страницах сайта в разделе «HEAD» прописываем примерно такой метатег
- Сообщаем поисковым системам о новом сайте:
- Яндекс: на странице вебмастера «Переобход страниц»;
- Гугл: в форме поиска вебмастера, где написано «Проверка всех URL на ресурсе...»;
- Майл;
- Бинг;
- В некоторых местах советуют выждать, пока яндекс склеит зеркала, и тогда уже устанавливать редирект. Я отношусь к этому скептически. Скорее всего, информация устарела. Достаточно подождать, когда робот скачает сайт по протоколу https, и после этого уже поставить редирект 301.
Часто задаваемые вопросы по переезду сайта.
Не забываем после каждой правки конфига перезапускать апач.- Как узнать, что робот качает именно https-версию сайта? Контролируя лог посещений апача. В файле
C:\Apache24\conf\httpd.conf
следует запустить модуль писания логов с записью наподобие Просматривая лог-файл, вы увидите, с какого порта робот брал страницы.LogLevel warn-
LogFormat "%{%H %M}t %s %{SERVER_PORT}e %m %U%q %{User-Agent}i" combined - CustomLog "C:/sajt/0/logs/access2.log" combined
-
-
- Как поставить серверный редирект
301? В файле
C:\Apache24\conf\httpd.conf
в разделе «настроек редиректов» следует разместить запись Просматривая лог-файл, вы увидитеRewriteCond %{HTTPS} offRewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] что-то типа В переводе с индейского на русский это означает, что робот сунулся скачивать301 80 /страница.html Mozilla/5.0 (compatible; Linux x86_64; Mail.RU_Bot/...... 200 443 /страница.html Mozilla/5.0 (compatible; Linux x86_64; Mail.RU_Bot/...... страницу.html через80-й порт, получил 301 пинка и скачал её же через443-й с кодом 200.
Сроки и денежка за установку сервера Апач и бесплатного сертификата SSL на сайт
Помощь в установке сервера
Работы по установке сервера Апач на компьютер с
Работы по установке бесплатного сертификата от
Всё вместе — 3 сут, стоимость — 10630 руб.
Цены посчитаны со скидкой.
Помощь в установке сервера