Установка SSL-сертификата на Apache в Windows — задача, с которой рано или поздно сталкивается каждый администратор сайта. Без защищённого соединения браузеры будут пугать пользователей предупреждениями о небезопасности, а поисковые системы понизят сайт в выдаче. К счастью, настроить на Apache под Windows можно за 20–30 минут, если знать последовательность действий.

В этой статье разберём весь процесс: от генерации закрытого ключа и до установки сертификата и настройки конфигурации сервера. Покажу, какие инструменты использовать, где могут возникнуть сложности и как их обойти.,A также поделюсь практическими советами, чтобы сэкономить ваше время.

Подготовка: что нужно до установки SSL

Прежде чем переходить к настройке, убедитесь, что у вас есть всё необходимое:

  • Установленный Apache для Windows — обычно это httpd-2.4.xx-win64-VS16.zip или аналогичная сборка от Apache Lounge.
  • Права администратора — без них не удастся установить сертификат в системное хранилище или изменить конфиги.
  • Доменное имя, привязанное к серверу (для публичных SSL) или локальный IP (для тестового самоподписанного сертификата).
  • Инструмент для генерации ключей — OpenSSL (входит в состав Apache или устанавливается отдельно).

Если Apache ещё не установлен, скачайте его с официального сайта и распакуйте в C:\Apache24 (или другой каталог). Не забудьте добавить путь к bin в переменную PATH, чтобы команды openssl и httpd работали из любой папки.

💡

Откройте командную строку от имени администратора: нажмите Win + X и выберите «Командная строка (администратор)» или «Windows PowerShell (администратор)»

ПараметрОписаниеПример значения
-newСоздать новый запрос на сертификат—
-newkey rsa:2048Тип и длина ключа (2048 бит — стандарт для безопасности)rsa:2048 или rsa:4096
-nodesНе шифровать закрытый ключ паролем (упрощает автоматизацию)—
-keyout server.keyИмя файла для закрытого ключаC:\Apache24\conf\ssl\server.key
-out server.csrИмя файла для запроса CSRC:\Apache24\conf\ssl\server.csr

Генерация закрытого ключа и запроса CSR

Первый шаг — создание закрытого ключа (.key) и запроса на подпись сертификата (.csr). Это основа для получения от центр сертификации (CA) или создания самоподписанного сертификата.

Вот команда для генерации ключа и в OpenSSL:

openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr

Разберём параметры:

После выполнения команды OpenSSL запросит данные для сертификата: страна, регион, организация, домен и email. Заполняйте их латиницей — это важно для корректной работы. Например:

Country Name (2 letter code) [AU]:RU
State or Province Name:Moscow
Locality Name:Moscow
Organization Name:MyCompany Ltd
Common Name:example.com
Email Address:admin@example.com

Поле Common Name (CN) должно совпадать с доменным именем, для которого вы запрашиваете сертификат. Для Wildcard-сертификатов укажите *.example.com.

Получение SSL-сертификата

Теперь, когда у вас есть server.csr, можно получить сертификат. Есть три пути:

  • Бесплатный сертификат от Let’s Encrypt — подходит для публичных сайтов. Используйте клиент certbot с плагином для Apache в Windows (например, certbot-win-simple).
  • Платный сертификат от коммерческого CA (например, DigiCert, Comodo, Sectigo) — подходит для корпоративных сайтов. Загрузите server.csr в панель управления и получите .crt файл.
  • Самоподписанный сертификат — для тестов или локальной разработки. Сгенерируйте его командой:
    openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Для Let’s Encrypt в Windows удобно использовать утилиту win-acme. Она автоматически создаст сертификат и обновит конфигурацию Apache. Скачайте её с GitHub, распакуйте и запустите:

wacs.exe --target manual --host example.com --validation filesystem --output C:\Apache24\conf\ssl

Настройка модуля в Apache

Чтобы Apache мог работать с HTTPS, нужно подключить модуль mod_ssl и указать путь к сертификатам. Откройте файл конфигурации httpd.conf (обычно находится в C:\Apache24\conf\) и убедитесь, что строка:

LoadModule ssl_module modules/mod_ssl.so

раскомментирована (нет символа # в начале). Если её нет — добавьте вручную.

Далее найдите строку:

#Include conf/extra/httpd-ssl.conf

и раскомментируйте её, убрав #. Это подключит конфигурацию для SSL.

Теперь откройте файл httpd-ssl.conf (в папке conf\extra\) и настройте его:

  1. Укажите путь к сертификатам. Найдите блок <VirtualHost _default_:443> и измените строки:

    SSLCertificateFile "C:/Apache24/conf/ssl/server.crt"
    SSLCertificateKeyFile "C:/Apache24/conf/ssl/server.key"

    Если используете цепочку сертификатов (например, от Let’s Encrypt), добавьте:

    SSLCertificateChainFile "C:/Apache24/conf/ssl/chain.crt"

  2. Настройте протокол и шифры. Для безопасности отключите устаревшие протоколы и укажите современные:

    SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
    SSLCipherSuite ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256

  3. Укажите корневой домен. В блоке <VirtualHost> добавьте:

    ServerName example.com:443

После изменений сохраните файлы и перезапустите Apache:

httpd -k restart

⚠️ Внимание: Если Apache не запускается, проверьте синтаксис конфигурационных файлов командой httpd -t. Ошибки в путях или синтаксисе — частая причина сбоев.
Какой SSL-сертефикат вы используете?
Let’s Encrypt (бесплатный)
Платный от коммерческого CA
Самоподписанный
Пока не использую

Сравнение типов SSL-сертификатов для в Windows

Не все сертификаты одинаково подходят для разных задач. В таблице ниже — сравнение основных типов по ключевым параметрам.

Тип сертификатаСтоимостьУровень проверкиПоддержка поддоменовСрок действия
СамоподписанныйБесплатноНет проверкиНет1–5 лет (настраивается)
Let’s EncryptБесплатноDomain Validation (DV)Да (Wildcard)90 дней (автообновление)
DV (Domain Validation)От $10/годПроверка доменаНет (если не Wildcard)1–2 года
OV (Organization Validation)От $50/годПроверка организацииНет (если не Wildcard)1–2 года
EV (Extended Validation)От $150/годРасширенная проверкаНет1–2 года

Проверка работы HTTPS

После настройки нужно убедиться, что всё работает корректно. Откройте браузер и перейдите по адресу https://example.com (замените example.com на ваш домен). Если всё настроено верно, вы увидите зелёный замок в адресной строке.

Для более глубокой проверки используйте:

  • sslabs.com/ssltest — анализирует конфигурацию и выдаёт оценку безопасности.
  • openssl s_client — команда для проверки сертификата из консоли:
    openssl s_client -connect example.com:443 -servername example.com

Если браузер выдаёт ошибку, проверьте:

  • Корректность путей к сертификатам в httpd-ssl.conf.
  • Права доступа к файлам .key и .crt (должны быть читаемы для Apache).
  • Совпадение Common Name в сертификате с доменом сайта.

Даже если HTTPS работает, не игнорируйте предупреждения о смешанном контенте (HTTP в HTTPS). Это снижает безопасность страницы и может отображаться как небезопасная в браузере.

Пошаговая инструкция: установка на в Windows

Если вы предпочитаете чёткий алгоритм без лишних объяснений, следуйте этой инструкции:

  1. Установите Apache и OpenSSL. Скачайте Apache для Windows с Apache Lounge и распакуйте в C:\Apache24.

  2. Сгенерируйте ключ и CSR:

    openssl req -new -newkey rsa:2048 -nodes -keyout C:\Apache24\conf\ssl\server.key -out C:\Apache24\conf\ssl\server.csr

  3. Получите сертификат:

    Загрузите server.csr в панель управления или используйте win-acme для Let’s Encrypt.

  4. Настройте Apache:

    Раскомментируйте LoadModule ssl_module и Include conf/extra/httpd-ssl.conf в httpd.conf.

  5. Укажите пути к сертификатам в httpd-ssl.conf:

    SSLCertificateFile "C:/Apache24/conf/ssl/server.crt"
    SSLCertificateKeyFile "C:/Apache24/conf/ssl/server.key"

  6. Перезапустите Apache:

    httpd -k restart

  7. Проверьте HTTPS в браузере и с помощью openssl s_client.

Чек-лист перед запуском HTTPS

Выполнено: 0 / 5

Часто задаваемые вопросы

Можно ли использовать один SSL-сертификат для нескольких доменов?

Да, для этого подойдёт Multi-Domain SSL (SAN-сертификат) или Wildcard SSL. В первом случае вы указываете все домены при генерации CSR (поле Subject Alternative Name), во втором — сертификат покрывает все поддомены (*.example.com). Let’s Encrypt поддерживает оба варианта.

Почему браузер пишет, что сертификат недоверенный?

Обычно это происходит с самоподписанными сертификатами или если цепочка сертификатов неполная. Для самоподписанного сертификата добавьте его в доверенные корневые центры в Windows (через «Сертификаты» в mmc.exe). Для Let’s Encrypt или платных сертификатов проверьте, что файл chain.crt подключён в httpd-ssl.conf.

Как обновить сертификат Let’s Encrypt автоматически?

Используйте утилиту win-acme. Она поддерживает автообновление через планировщик задач Windows. После первой установки запустите:

wacs.exe --renew --baseuri https://acme-v02.api.letsencrypt.org/

и настройте задачу в Task Scheduler для автоматического выполнения раз в 60–70 дней.

Где хранить закрытый ключ (server.key)?

Закрытый ключ нужно хранить в защищённой папке с ограниченными правами доступа. Рекомендуется размещать его в C:\Apache24\conf\ssl\ и настраивать права так, чтобы только пользователь SYSTEM и администраторы имели доступ.Never не храните ключ в общедоступных папках или репозиториях.