Содержание

Apache SSL: как настроить SSL-сертификат для сервера Apache

Защищенное соединение между веб-браузером и сервером – гарантия того, что клиенты могут совершать безопасные транзакции, не опасаясь за кражу своих данных. Идеальный способ создать такое соединение – это воспользоваться связкой из Apache 2 (лидера в области серверного программного обеспечения для Linux) и SSL (протокола безопасной связи). В данной статье мы покажем вам, как защитить соединение между сервером Apache и пользовательским браузером c помощью SSL-сертификата.

SSL – это протокол для безопасной передачи кодированных данных между веб-браузером и веб-сервером. В большинстве случаев процесс аутентификации происходит только на стороне сервера, т.е. клиент видит, что это именно тот сервер, который был заявлен изначально. Как только соединение будет установлено, оно автоматически станет защищенным, поскольку доступ к ключевому материалу будет только у клиента и сервера, и ни у кого другого. Обычно аутентификация клиента в таком случае не требуется, однако в некоторых случаях она все же реализуется при помощи клиентских SSL-сертификатов.

Установка SSL для Apache

Установка SSL для Apache достаточно проста, в ней можно выделить несколько важных шагов. Первый шаг – это получение сертификата. Вы всегда можете приобрести один из следующих SSL-сертификатов на сайте ЛидерТелеком:

  • EssentialSSL – один из самых недорогих SSL-сертификатов, который предполагает только проверку по домену.
  • InstantSSL – SSL-сертификат, подтверждающий существование той или иной организации.
  • EV SSL – SSL-сертификат с расширенной проверкой организации, позволяющий добиться зеленой строки в браузере и максимального доверия со стороны клиентов, а также обеспечивает высочайшую надежность.

Вне зависимости от того, какой сертификат вы выбрали для себя, вам понадобится пройти следующие шаги для его установки на сервер Apache.

После выпуска сертификата вам понадобится провести настройку Apache. Процесс настройки Apache для SSL следующий:

  1. Сохраняем основной и промежуточный сертификат в отдельную папку на сервере вместе с приватным ключом.
  2. Открываем конфигурационный файл Apache в текстовом редакторе. Конфигурационные файлы Apache обычно хранятся в /etc/httpd/ или /etc/apache2/. Основной конфигурационный файл обычно называется httpd.conf или apache2.conf. В большинстве случаев блоки <VirtualHost> будут находиться в самом низу файла httpd.conf. Иногда блоки <VirtualHost> могут располагаться в отдельных файлах в каталогах /etc/httpd/vhosts.d/ или /etc/httpd/sites/, либо в файле ssl.conf. Найти место, где располагается SSL-конфигурация в дистрибутивах Linux, можно с помощью grep:

grep -i -r «SSLCertificateFile» /etc/httpd/

В данном случае «/etc/httpd/» – это базовая директория в вашей сборке Apache.

  1. Если вы хотите, чтобы ваш сайт был доступен как через безопасное (https), так и через небезопасное (http) соединение, то в таком случае вам нужно будет создать виртуальный хост для каждого типа соединения. Скопируйте уже существующий виртуальный хост для http-соединения и смените порт с 80 на 443.
  2. Добавьте к файлу следующие строки (выделены жирным):

<VirtualHost 192.168.0.1:443>

DocumentRoot /var/www/leader_site

ServerName www.leader_site.com

SSLEngine on

SSLCertificateFile /etc/ssl/crt/bazov_cert.crt

SSLCertificateKeyFile /etc/ssl/crt/private.key

SSLCertificateChainFile /etc/ssl/crt/promejut_cert.crt

</VirtualHost>

  1. Измените имена файлов и путей, чтобы они соответствовали вашим файлам сертификата:
  • SSLCertificateFile – файл основного сертификата для вашего домена.
  • SSLCertificateKeyFile – файл с ключом, сгенерированный в процессе создания CSR.
  • SSLCertificateChainFile – файл промежуточного сертификата (если он имеется), предоставленный вашим центром сертификации. Если эта директива не работает, попробуйте вместо нее использовать SSLCACertificateFile.
  1. Сохраняем изменения и тестируем конфигурацию Apache. Лучше всего заранее протестировать конфигурацию на наличие различных синтаксических ошибок, иначе Apache просто не запустится. Для тестирования выполняем следующую команду:

apachectl configtest

  1. Делаем рестарт Apache с помощью команды:

apachectl restart

Или останавливаем и вновь запускаем сервер:

apachectl stop

apachectl start

Если вы столкнулись с проблемами при установке SSL-соединения и вы не в силах самостоятельно устранить их, вы всегда можете связаться с нашими специалистами по представленным на сайте контактам. Мы поможем вам настроить SSL на Apache без лишних проблем.


Установка SSL-сертификата на Apache | REG.RU

Настройка HTTPS на Apache и установка SSL необходима, чтобы обеспечить защиту данных пользователей на вашем веб-сайте. В инструкции ниже описана установка SSL-сертификата Comodo, GlobalSign и других, предоставляемых REG.RU, и установка SSL, заказанных в других компаниях.

Активный SSL-сертификат

Перед установкой SSL-сертификата от REG.RU перейдите к списку услуг и убедитесь, что услуга SSL-сертификата активна (значок зелёного цвета):

Если услуга SSL не активна, активируйте SSL-сертификат.

Установка SSL

После выпуска SSL на ваш контактный e-mail придёт письмо с данными для его установки, это:

  • сам сертификат;
  • корневой сертификат;
  • промежуточный сертификат.

Приватный ключ обычно генерируется при заказе SSL и сохраняется на ваш локальный ПК.

Установка на Ubuntu/Debian

Перед установкой SSL на Ubuntu/Debian необходимо включить модуль mod_ssl с помощью команды: a2enmod ssl.

Чтобы установить SSL:

  1. 1.

    Создайте на вашем сервере в каталоге /etc/ssl/ файлы domain_name.crt, private.key и chain.crt со следующим содержимым:

    • domain_name.crt — сам сертификат;
    • private.key — приватный ключ;
    • chain.crt — цепочка сертификатов, которая содержит сначала промежуточный сертификат и следом за ним корневой (с новой строки без пробелов и пустых строк).
  2. 2.

    Откройте файл конфигурации Apache. В зависимости от особенностей вашего сервера этот файл находится по одному из следующих адресов:

    • для CentOS: /etc/httpd/conf/httpd.conf;
    • для Debian/Ubuntu: /etc/apache2/apache2.conf;
    • если вы устанавливаете SSL-сертификат на OpenServer, используйте путь к его корневой папке. В конце файла создайте копию блока «VirtualHost». Укажите для блока порт 443 и добавьте внутри него строки:
    SSLEngine on
    
    SSLCertificateFile /etc/ssl/domain_name.crt
    
    SSLCertificateKeyFile /etc/ssl/private.key 
    
    SSLCertificateChainFile /etc/ssl/chain.crt

    Пример конфигурационного файла:

  3. 3.

    Проверьте конфигурацию Apache до перезапуска командой: apachectl configtest

  4. 4.

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

Готово, вы настроили SSL-сертификат. Теперь настройте переадресацию для вашего сайта.

Настройка HTTPS на Apache

После установки SSL настройте редирект с HTTP на HTTPS. 443$ RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Подробнее про редирект через .htaccess вы можете узнать в статье: Редирект через .htaccess.

Также по инструкции вы можете настроить редирект с помощью Nginx на VPS.

Проверка установленного SSL

Вы можете проверить корректность установки SSL-сертификата по инструкции: Как проверить правильность установки SSL-сертификата?

Если у вас возникли сложности с установкой SSL-сертификата, вы можете написать заявку в службу поддержки, и наши специалисты вам помогут.

Помогла ли вам статья?

Да

раз уже
помогла

SSL/TLS Strong Encryption: How-To — Apache HTTP Server Version 2.4

Apache HTTP Server Version 2.4

Доступные языки:  en  | fr 

Этот документ поможет вам начать работу и получить работающий. Вам настоятельно рекомендуется прочитать остальную часть SSL документацию и глубже понять материал, прежде чем переходить к продвинутым методам.

  • Пример базовой конфигурации
  • Наборы шифров
  • и усиление безопасности
  • Сшиватель OCSP
  • Аутентификация клиента и контроль доступа
  • Регистрация

См. также

  • Комментарии

Ваша конфигурация SSL должна содержать как минимум следующие директивы.

 LoadModule модули ssl_module/mod_ssl.so
Слушай 443
<Виртуальный хост *:443>
    Имя сервера www.example.com
    SSLEngine включен
    SSLCertificateFile "/path/to/www.example.com.cert"
    SSLCertificateKeyFile "/path/to/www.example.com.key"
 
  • Как мне создать сервер SSL, который принимает только надежное шифрование?
  • Как я могу создать сервер SSL, который принимает все типы шифров в целом, но требуется надежный шифр для доступа к определенному URL-адресу?

Как создать сервер SSL, который принимает надежное шифрование только?

Следующее включает только самые стойкие шифры:

 SSLCipherSuite HIGH:!aNULL:!MD5 

В следующей конфигурации вы указываете предпочтение для конкретных оптимизированных по скорости шифров (которые будут выбраны mod_ssl, при условии, что они поддерживаются клиентом):

 SSLCipherSuite RC4-SHA:AES128-SHA:HIGH:!aNULL:!MD5
SSLHonorCipherOrder на 

Как создать сервер SSL, который принимает все типы шифров в целом, но требует надежных шифров для доступа к конкретному URL?

Очевидно, серверный SSLCipherSuite , который ограничивает шифры к сильным вариантам, здесь не ответ. Однако, mod_ssl можно перенастроить в пределах Location блоки, чтобы дать решение для каждого каталога, и может автоматически принудительно повторное согласование параметров SSL для соответствия новой конфигурации. Это можно сделать следующим образом:

 # будь либералом вообще
SSLCipherSuite ВСЕ:!aNULL:RC4+RSA:+HIGH:+MEDIUM:+LOW:+EXP:+eNULL
<Расположение "/strong/область">
# но https://hostname/strong/area/ и ниже
# требует надежных шифров
SSLCipherSuite HIGH:!aNULL:!MD5
 

Онлайн-протокол статуса сертификата (OCSP) — это механизм для определение того, был ли отозван сертификат сервера, и OCSP Сшивание — это особая форма этого, при которой сервер, такой как httpd и mod_ssl, поддерживает текущие ответы OCSP для своих сертификатов и отправляет их клиентам, которые общаются с сервером. Большинство сертификатов содержать адрес ответчика OCSP, поддерживаемый выдающим Центр сертификации, и mod_ssl может связываться с этим ответчиком для получить подписанный ответ, который можно отправить клиентам, взаимодействующим с сервер.

Поскольку клиент может получить статус отзыва сертификата из сервер, не требуя дополнительного подключения от клиента к Центр сертификации, сшивание OCSP является предпочтительным способом для статус отзыва, который необходимо получить. Другие преимущества устранения связи между клиентами и центром сертификации заключаются в том, что история просмотров клиентов не предоставляется центру сертификации и получение статуса более надежно, поскольку не зависит от потенциально сильно загруженные серверы центра сертификации.

Поскольку ответ, полученный сервером, может быть повторно использован для всех клиентов используя один и тот же сертификат в течение времени, пока ответ действителен, накладные расходы на сервер минимальны.

После правильной настройки общей поддержки SSL включение OCSP Сшивание обычно требует очень незначительных изменений в файле httpd. конфигурация — добавление этих двух директив:

 SSLUseStapling On
SSLStaplingCache "shmcb:logs/ssl_stapling(32768)" 

Эти директивы размещаются в глобальной области (т. е. не в виртуальной определение хоста) везде, где есть другие глобальные директивы конфигурации SSL. размещены, например, в conf/extra/httpd-ssl.conf для обычного сборки с открытым исходным кодом httpd, /etc/apache2/mods-enabled/ssl.conf для Ubuntu или Debian-в комплекте httpd и т. д.

Путь в директиве SSLStaplingCache (например, журналов/ ) должно совпадать с тем, что указано на Директива SSLSessionCache . Этот путь относительный до Корень сервера .

Эта конкретная директива SSLStaplingCache требует mod_socache_shmcb (из 9префикс 0049 shmcb на аргумент директивы). Этот модуль обычно включен уже для SSLSessionCache или от имени какого-либо модуля, отличного от mod_ssl . Если вы включили кеш сеанса SSL с помощью механизм, отличный от mod_socache_shmcb , используйте эту альтернативу механизм для SSLStaplingCache . Например:

 SSLSessionCache "dbm:logs/ssl_scache"
SSLStaplingCache "dbm:logs/ssl_stapling" 

Вы можете использовать программу командной строки openssl для проверки того, что ответ OCSP отправлено вашим сервером:

 $ openssl s_client -connect www.example.com:443 -status -servername www.example.com
...
Ответ ОССП:
=======================================
Данные ответа OCSP:
    Статус ответа OCSP: успешно (0x0)
    Тип ответа: базовый ответ OCSP
...
    Статус сертификата: Хороший
... 

В следующих разделах описаны наиболее распространенные ситуации, требующие дальнейшее изменение конфигурации. См. также mod_ssl справочное руководство.

Если для сервера используется несколько SSL-сертификатов

Ответы OCSP хранятся в кэше сшивания SSL. В то время как ответы обычно имеют размер от нескольких сотен до нескольких тысяч байт, mod_ssl поддерживает ответы OCSP размером до 10 КБ. С более чем несколько сертификатов, размер кэша сшивания (32768 байт в примере выше) может надо увеличить. Сообщение об ошибке AH01929 будет зарегистрировано в случае ошибка сохранения ответа.

Если сертификат не указывает на ответчик OCSP или если необходимо использовать другой адрес

См. Директива SSLStaplingForceURL .

Вы можете подтвердить, что сертификат сервера указывает на ответчик OCSP с помощью программы командной строки openssl следующим образом:

 $ openssl x509 -in ./www.example.com.crt -text | grep 'OCSP.*http'
OCSP — URI: http://ocsp.example.com 

Если указан URI OCSP и веб-сервер может с ним связаться напрямую без использования прокси, никакой настройки не требуется. Обратите внимание, что правила брандмауэра, контролирующие исходящие соединения с веб-сервера, могут нужно отрегулировать.

Если URI OCSP не указан, обратитесь в центр сертификации, чтобы определить, доступен ли он; если это так, настройте его с помощью SSLStaplingForceURL в виртуальном узел, использующий сертификат.

Если настроено несколько виртуальных хостов с поддержкой SSL и OCSP Сшивание должно быть отключено для некоторых

Добавьте SSLUseStapling Off к виртуальным хостам, для которых OCSP Сшивание должно быть отключено.

Если ответчик OCSP работает медленно или ненадежно

Доступно несколько директив для обработки тайм-аутов и ошибок. Ссылаться к документации по SSLStaplingFakeTryLater , SSLStaplingResponderTimeout и SSLStaplingReturnResponderErrors директивы.

Если mod_ssl регистрирует ошибку AH02217

 AH02217: ssl_stapling_init_cert: Не удается получить сертификат издателя! 

Для поддержки сшивания OCSP, когда определенный сертификат сервера используется, цепочка сертификатов для этого сертификата должна быть настроена. Если оно не был настроен как часть включения SSL, будет выдана ошибка AH02217 когда сшивание включено, и клиентам не будет предоставлен ответ OCSP с помощью сертификата.

См. SSLCertificateChainFile и SSLCertificateFile для инструкций для настройки цепочки сертификатов.

  • Как заставить клиентов проходить аутентификацию с использованием сертификатов?
  • Как заставить клиентов аутентифицироваться с использованием сертификатов для определенный URL-адрес, но по-прежнему разрешать произвольным клиентам доступ к остальной части сервера?
  • Как разрешить доступ к определенный URL-адрес, но разрешить всем клиентам доступ к остальной части сервера?
  • Как я могу требовать HTTPS с надежными шифрами, и либо базовая аутентификация или клиентские сертификаты для доступа к части Интранет-сайт для клиентов, приходящих из Интернета?

Как заставить клиентов проходить аутентификацию с использованием сертификатов?

Когда вы знаете всех своих пользователей (например, как это часто бывает на корпоративном Интранет), вы можете потребовать простой проверки подлинности сертификата. Все вы нужно сделать, это создать клиентские сертификаты, подписанные вашим собственным CA сертификат ( ca.crt ), а затем проверить клиентов по этому сертификат.

 # требуется сертификат клиента, который должен быть напрямую
# подписано нашим сертификатом ЦС в ca.crt
SSLVerifyClient требует
SSLVerifyDepth 1
SSLCACertificateFile "conf/ssl.crt/ca.crt" 

Как заставить клиентов аутентифицироваться с использованием сертификатов для определенный URL-адрес, но по-прежнему разрешать произвольным клиентам доступ к остальной части сервера?

Чтобы заставить клиентов аутентифицироваться с использованием сертификатов для определенного URL-адреса, вы можете использовать функции реконфигурации для каждого каталога mod_ssl :

 SSLVerifyClient нет
SSLCACertificateFile "conf/ssl.crt/ca.crt"
<Местоположение "/secure/area">
SSLVerifyClient требует
SSLVerifyDepth 1
 

Как разрешить доступ к определенный URL-адрес, но разрешить всем клиентам доступ к остальной части сервера?

Ключом к этому является проверка той части сертификата клиента, соответствует тому, что вы ожидаете. Обычно это означает проверку всех или части Отличительное имя (DN), чтобы узнать, содержит ли оно известную строку. Есть два способа сделать это, используя либо mod_auth_basic или SSLRequire .

Метод mod_auth_basic обычно требуется, когда сертификаты совершенно произвольны, или когда их DN нет общих полей (обычно организация и т.д.). В этом случае, вы должны создать базу данных паролей, содержащую всех клиенты разрешены следующим образом:

 SSLVerifyClient нет
SSLCACertificateFile "conf/ssl.crt/ca.crt"
SSLCACertificatePath "conf/ssl.crt"
<Каталог "/usr/local/apache2/htdocs/secure/area">
    SSLVerifyClient требует
    SSLVerifyDepth 5
    SSLOptions+FakeBasicAuth
    SSLRequireSSL
    AuthName "Аутентификация Snake Oil"
    Основной тип авторизации
    Файл AuthBasicProvider
    AuthUserFile "/usr/local/apache2/conf/httpd.passwd"
    Требовать действительного пользователя
 

Пароль, используемый в этом примере, представляет собой зашифрованную по DES строку «password». Дополнительные сведения см. в документации SSLOptions . информация.

httpd.passwd

 /C=DE/L=Munich/O=Snake Oil, Ltd./OU=Staff/CN=Foo:xxj31ZMTZzkVA
/C=US/L=S.F./O=Snake Oil, Ltd./OU=CA/CN=Bar:xxj31ZMTZzkVA
/C=US/L=L.A./O=Snake Oil, Ltd./OU=Dev/CN=Quux:xxj31ZMTZzkVA 

Когда все ваши клиенты являются частью общей иерархии, которая закодирована в DN, вы можете легко сопоставить их, используя SSLRequire следующим образом:

 SSLVerifyClient нет
SSLCACertificateFile "conf/ssl.crt/ca.crt"
SSLCACertificatePath "conf/ssl.crt"
<Каталог "/usr/local/apache2/htdocs/secure/area">
  SSLVerifyClient требует
  SSLVerifyDepth 5
  SSLOptions+FakeBasicAuth
  SSLRequireSSL
  SSLRequire %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \
               и %{SSL_CLIENT_S_DN_OU} в {"Персонал", "ЦС", "Разработчик"}
 

Как я могу потребовать HTTPS с надежными аутентификации или клиентские сертификаты для доступа к части Интранет-сайт для клиентов, приходящих из Интернета? Я все еще хочу разрешить простой HTTP-доступ для клиентов в интрасети.

В этих примерах предполагается, что клиенты в интрасети имеют IP-адреса в диапазоне 192.168.1.0/24 и что часть веб-сайта интрасети, которую вы хотите разрешить доступ в Интернет по адресу /usr/local/apache2/htdocs/subarea . Эта конфигурация должна оставаться за пределами вашего виртуального хоста HTTPS, поэтому что это применимо как к HTTPS, так и к HTTP.

 SSLCACertificateFile "conf/ssl.crt/company-ca.crt"
<Каталог "/usr/local/apache2/htdocs">
    # За пределами подзоны предоставляется доступ только к Интранету
    Требовать IP 192.168.1.0/24

<Каталог "/usr/local/apache2/htdocs/subarea">
    # Внутри подзоны разрешен любой доступ в Интранет
    # а из интернета только HTTPS + Strong-Cipher + Password
    # или альтернативный HTTPS + Strong-Cipher + Client-Certificate
    
    # Если используется HTTPS, убедитесь, что используется надежный шифр.
    # Дополнительно разрешить клиентские сертификаты в качестве альтернативы базовой аутентификации. 192\.168\.1\.[0-9]+$"
    RewriteCond "%{HTTPS}" "!=on"
    Правило перезаписи "." "-" [Ф]
    
    # Разрешить доступ к сети и/или базовую аутентификацию
    Удовлетворить любой
    
    # Контроль доступа к сети
    Требовать ip 192.168.1.0/24
    
    # Базовая HTTP-аутентификация
    Основной тип авторизации
    AuthName "Защищенная область интрасети"
    Файл AuthBasicProvider
    AuthUserFile "conf/protected.passwd"
    Требовать действительного пользователя
 

mod_ssl может регистрировать чрезвычайно подробную отладочную информацию в журнал ошибок, когда его LogLevel установить более высокие уровни трассировки. С другой стороны, на очень загруженном сервере уровень информация может быть уже слишком много. Помните, что вы можете настроить LogLevel на модуль для удовлетворить ваши потребности.

Примечание:
Это не раздел вопросов и ответов. Комментарии, размещенные здесь, должны указывать на предложения по улучшению документации или сервера и могут быть удалены нашими модераторами, если они реализованы или считаются недействительными/не по теме. Вопросы о том, как управлять HTTP-сервером Apache, следует направлять либо на наш IRC-канал #httpd, на Libera.chat, либо в наши списки рассылки.

Как настроить SSL-сертификат Apache

Автор Чандан Кумар в Апач HTTP | Последнее обновление: 29 октября 2022 г.

Поделись на:

Сканер безопасности веб-приложений Invicti — единственное решение, обеспечивающее автоматическую проверку уязвимостей с помощью Proof-Based Scanning™.

Давайте защитим Apache сертификатом SSL/TLS.

После внедрения сертификата настроенный домен/IP-адрес будет доступен через HTTPS.

Начнем.

На высоком уровне мы сделаем следующее.

  • Компиляция Apache HTTP 2.4.5 с модулем SSL
  • Получить сертификат SSL
  • Настройте Apache для поддержки SSL

Установите Apache с SSL из источника

Чтобы настроить SSL, Apache HTTP должен быть скомпилирован с mod_ssl. Я буду использовать виртуальную машину CentOS 7 от Digital Ocean, чтобы продемонстрировать это.

  • Войдите на сервер Linux с правами root и загрузите последнюю версию Apache
  • .
 wget http://www-us.apache.org/dist//httpd/httpd-2.4.25.tar.gz. 

Примечание : последнюю версию можно найти здесь.

  • Извлечение с помощью команды gunzip
 gunzip -c httpd-2.4.25.tar.gz | tar xvf - 
  • У вас будет новая папка « httpd-2.4.25 »
  • Войдите внутрь и выполните следующую команду конфигурации
 ./configure --enable-ssl --enable-so 

Примечание . Если вы делаете это на совершенно новом сервере, у вас могут возникнуть проблемы, связанные с APR, PCRE, OpenSSL, и вы можете обратиться к устранению неполадок. гид.

Убедитесь, что вы не получили никаких ошибок от приведенной выше команды configure, а затем вам нужно выполнить установку с помощью команд make.

 марка
make install 

Как обычно, убедитесь, что приведенные выше команды не привели к ошибкам. Это означает, что у вас установлено веб-сервер Apache с поддержкой SSL.

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

Существует несколько способов создания и получения сертификата SSL, подписанного центром сертификации.

Если вы хотите внедрить SSL на веб-сервере интрасети, то в большинстве организаций есть внутренняя группа по выпуску сертификатов, поэтому вам следует проконсультироваться с ними. Но вам все равно нужно сгенерировать CSR (запрос на подпись сертификата), и вы можете сделать это с помощью OpenSSL.

Однако, если вы хотите получить URL-адрес с выходом в Интернет , то вы можете либо купить сертификат у VeriSign, GoDaddy, Namecheap, ZeroSSL и т. д., либо получить БЕСПЛАТНЫЙ сертификат от Let’s Encrypt.

Let’s Encrypt — это совместный проект Linux Foundation, который предлагает БЕСПЛАТНЫЙ сертификат SSL/TLS . Я буду использовать Let’s Encrypt, чтобы получить один сертификат для своего домена — Chandan.io

Существует несколько способов создания CSR, но самый простой , который я нашел, — это использование онлайн-инструмента «SSL For FREE».

Введите URL-адрес, который вы хотите защитить.

Подтвердите право собственности на домен одним из перечисленных способов и загрузите файлы сертификата домена.

Вы получите три файла, которые мы будем использовать для настройки веб-сервера Apache.

  1. ключ — это ваш ключевой файл, и его нельзя никому публиковать
  2. Сертификат
  3. — актуальный SSL-сертификат для вашего домена
  4. .
  5. Ca_bundle — корневой/промежуточный сертификат подписывающей стороны

Передайте загруженный файл на веб-сервер. Они нам скоро понадобятся.

Конфигурация Apache SSL

И последним шагом будет настройка Apache, чтобы он мог обслуживать запросы через HTTPS.

  • Войдите на веб-сервер Apache
  • Сделайте резервную копию файла httpd. conf (расположение по умолчанию /usr/local/apache2/conf/)
  • Откройте файл в редакторе vi и убедитесь, что модуль mod_ssl и httpd-ssl.conf существуют и не закомментированы
 LoadModule модули ssl_module/mod_ssl.so
Включите conf/extra/httpd-ssl.conf 

Мы будем использовать файл httpd-ssl.conf для настройки деталей сертификата. Есть следующее, что вам нужно, чтобы убедиться, что он имеет правильные параметры.

  1. SSLCertificateFile — путь к файлу сертификата CRT, который вы скачали ранее
  2. SSLCertificateKeyFile — путь к файлу закрытого ключа
  3. SSLCertificateChainFile — путь к файлу ca_bundle.crt

Совет : вы можете создать новую папку с именем «ssl» и хранить в ней все файлы, связанные с сертификатом.

  • При необходимости сделайте резервную копию и используйте редактор vi для изменения файла.
 SSLCertificateFile "/usr/local/apache2/conf/ssl/certificate. crt"
SSLCertificateChainFile "/usr/local/apache2/conf/ssl/ca_bundle.crt"
SSLCertificateKeyFile "/usr/local/apache2/conf/ssl/private.key" 

Далее необходимо настроить директиву « ServerName ». Обычно это ваш домен/URL-имя

 ServerName chandan.io 
  • Сохраните файл и перезапустите веб-сервер Apache
 cd /usr/local/apache2/bin
./apachectl остановить
./apachectl start 

И, наконец, вы должны убедиться, что ваш домен сопоставлен с недавно настроенным IP-адресом веб-сервера. После этого попробуйте получить доступ к своему домену с помощью HTTPS.

И, как вы можете видеть, Chandan.io доступен через https с сертификатом, который я настроил.

Вышеуказанные шаги необходимы для настройки SSL-сертификата, и вы должны дополнительно настроить SSL, чтобы сделать его более надежным и безопасным, как я объяснил здесь. Перед запуском вы также можете протестировать SSL/TLS вашего веб-сервера, чтобы убедиться, что он не подвержен распространенным уязвимостям безопасности.