Установите сертификат SSL на Apache Mod_SSL

Настройка Apache с SSL

В следующих инструкциях предполагается, что вы хотите запустить как защищенный сервер (на порту 443) и обычный сервер (на порт 80). Во-первых, вам нужно настроить сервер на прослушивание обоих портов. Либо редактировать /etc/apache2/ports.conf (в Debian; это включено в apache2.conf) или редактировать /etc/apache2/apache2.conf непосредственно включить строки:

Слушайте 80 Слушайте 443

Затем отредактируйте /etc/apache2/sites-enabled/yoursite использовать настройки SSL. Разделение обычных и безопасных настроек сервера с помощью VirtualHosts - самый простой вариант с точки зрения ремонтопригодности. Любая конфигурация вне разделов VirtualHosts (например, установка ServerAdmin) будет применяться как к (и к любым другим) VirtualHosts.

Примечание: Начиная с Apache 2.4.8, практика хранения сертификата сервера и промежуточной цепочки сертификатов в отдельных файлах устарела. И текущие, и устаревшие методы подробно описаны на интерактивных вкладках ниже.
Apache 2.4.8 или вышеApache 2.4.7 или ниже

Версии Apache 2.4.8 и выше предполагают, что ваш сертификат сервера будет объединен с любыми промежуточными сертификатами в одном файле. Чтобы загрузить связанный файл с SSL.com, выберите Nginx ссылка для скачивания в вашем аккаунте портала:

Nginx

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

$ cat /etc/ssl/private/ca-bundle-client.crt >> /etc/ssl/private/yourdomain.crt

Добавьте следующий раздел в ваш конфигурационный файл:

# ================================================= # SSL /TLS настройки # ================================================ = NameVirtualHost *: 443 DocumentRoot "/ var / www / yoursite" SSLEngine в SSLCertificateFile /etc/ssl/private/yourdomain.chained.crt SSLCertificateKeyFile /etc/ssl/private/myserver.key

Несколько замечаний по этой конфигурации:

  • SSLEngine должен быть включен, чтобы сервер использовал SSL.
  • DocumentRoot устанавливает корневой каталог для этого виртуального хоста. Это означает, что вы можете полностью отделить защищенный контент от обычного контента.
  • SSLCertificateFile должно быть указано место, куда вы положили файл с сертификатом вашего сервера и промежуточной цепочкой.
  • SSLCertificateKeyFile должен быть указан в том месте, куда вы положили свой файл закрытого ключа.

Добавьте следующий раздел в ваш конфигурационный файл:

# ================================================= # SSL /TLS настройки # ================================================ = NameVirtualHost *: 443 DocumentRoot "/ var / www / yoursite" SSLEngine на SSLCertificateFile /etc/ssl/private/yourdomain.crt SSLCertificateKeyFile /etc/ssl/private/myserver.key SSLCertificateChainFile / etc / ca ssl / private client.crt

Несколько замечаний по этой конфигурации:

  • SSLEngine должен быть включен, чтобы сервер использовал SSL.
  • DocumentRoot устанавливает корневой каталог для этого виртуального хоста. Это означает, что вы можете полностью отделить защищенный контент от обычного контента.
  • SSLCertificateFile, SSLCertificateChainFile, и SSLCertificateKeyFile должны быть установлены в местах, где вы положили свой сертификат, промежуточный и закрытый ключи, соответственно.

Чтобы запустить обычный сервер через порт 80, добавьте следующий раздел в файл конфигурации:

NameVirtualHost *: 80 DocumentRoot "/ var / www / yoursite" # Настройка каталога для конкретного хоста, параметры и т. Д. # Большинство этих параметров, скорее всего, будут установлены вне разделов VirtualHosts #.

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

Тестирование

Создайте базовую страницу index.html везде, где находится корневой каталог вашего веб-сервера, если у вас еще нет там содержимого.

Затем укажите ваш веб-браузер на https://www.yoursite.com. Вы должны увидеть открытое SSL-соединение и доставку страницы. Если вы используете самозаверяющий сертификат, в вашем браузере появится всплывающее предупреждение о том, что идентификация сервера не может быть проверена. Вы можете просмотреть и принять сертификат. При использовании внешнего сертификата все должно происходить без вмешательства.

Также убедитесь, что вы не можете получить доступ к защищенному контенту с помощью http: //. Если вы попытаетесь, вы должны получить сообщение об ошибке.

УСТРАНЕНИЕ НЕПОЛАДОК

Если он не работает должным образом, сначала проверьте, действительно ли ваш сервер работает, используя ps -a | grep apache. Если это ничего не вернет, попробуйте перезапустить его и проверьте сообщения об ошибках на терминале.

Также убедитесь, что права доступа к файлам ключей и сертификатов установлены правильно (см. Выше), а также права доступа к тестовому файлу HTML и его родительскому каталогу.

Далее проверьте логи. Вы должны проверить как основные журналы сервера, так и журналы SSL, которые вы настроили в своем файле конфигурации выше. Если вы не получили ничего полезного, попробуйте изменить значение LogLevel в файле конфигурации Apache2 на «отладка», перезапустите Apache2 и повторите попытку. Это должно дать больше данных файла журнала.

Если вы также используете обычный веб-сервер на 80-м порту, попробуйте загрузить тестовую страницу по http: //, а не по https: //, чтобы определить, связана ли проблема с веб-сервером или с SSL-соединением. Обратите внимание, что в приведенной выше настройке корневой каталог веб-сервера отличается для http: // и https: //, поэтому вы не сможете (или не должны!) Иметь доступ к одному и тому же содержимому. Если ваша тестовая страница в корневом каталоге http: // работает нормально, а ваша тестовая страница в корневом каталоге https: // - нет, это может помочь вам определить проблему.

Если проблема заключается в соединении SSL, полезным инструментом является s_client, который является диагностическим инструментом для устранения неполадок TLS/ SSL-соединения. Основное использование: /usr/bin/openssl s_client -connect localhost:443, Есть также множество других опций, для которых вы можете проверить документацию. Если вы получаете сообщения об ошибках, это должно помочь вам найти проблему.

Спасибо, что выбрали SSL.com! Если у вас возникнут вопросы, свяжитесь с нами по электронной почте по адресу Support@SSL.com, вызов 1-877-SSL-SECUREили просто нажмите на ссылку чата в правом нижнем углу этой страницы.

Подпишитесь на рассылку новостей SSL.com

Не пропустите новые статьи и обновления с SSL.com

Будьте в курсе и будьте в безопасности

SSL.com является мировым лидером в области кибербезопасности, PKI и цифровые сертификаты. Подпишитесь, чтобы получать последние новости отрасли, советы и анонсы продуктов от SSL.com.

Мы будем рады вашим отзывам

Пройдите наш опрос и поделитесь с нами своими мыслями о своей недавней покупке.