Настройка ssl в apache на centos

Настройка Apache+SSL на Centos | Записки системного администратора

1.Установка необходимых пакетов

# yum install openssl mod_ssl

2. Генерирование сертификатов

Для вирт.хоста по умолчанию

# openssl req -new -x509 -days 3650 -nodes -out cert.perm -keyout cert.key

Для вирт.хоста kamaok.org.ua

# openssl req -new -x509 -days 3650 -nodes -out kamaok.org.ua.perm -keyout kamaok.org.ua.key

 3. Настройка вирт.хоста по умолчанию

# nano /etc/httpd/conf.d/000default.conf
123456789101112131415161718 DocumentRoot /var/www/htmlServerName localhostSSLEngine onSSLCertificateFile /etc/httpd/ssl/cert.permSSLCertificateKeyFile /etc/httpd/ssl/cert.keyOptions   -IndexesAllowOverride allAllow from allErrorLog logs/default-ssl-error.log#ErrorLog /dev/nullCustomLog logs/default-ssl-access.log combined#CustomLog /dev/null combined

 4.Настройка вирт.хоста kamaok.org.ua

# nano /etc/httpd/conf.d/kamaok.org.ua.conf
12345678910111213141516171819 DocumentRoot /path/to/documentrootServerName kamaok.org.uaServerAlias *.kamaok.org.uaSSLEngine onSSLCertificateFile /etc/httpd/ssl/kamaok.org.ua.permSSLCertificateKeyFile /etc/httpd/ssl/kamaok.org.ua.keyOptions   -IndexesAllowOverride allAllow from allErrorLog logs/kamaok.org.ua-ssl-error.log#ErrorLog /dev/nullCustomLog logs/kamaok.org.ua-ssl-access.log combined#CustomLog /dev/null combined

5. Включаем вирт.хостинг для https подключений

# nano /etc/httpd/conf/httpd.conf

 6.Отключаем вирт.хост по умолчанию,который активируется при установке модуля mod_ssl

# cp /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf~
# cat /etc/httpd/conf.d/ssl.conf | grep -v # | grep -v ^$
LoadModule ssl_module modules/mod_ssl.soListen 443SSLPassPhraseDialog builtinSSLSessionCache         shmcb:/var/cache/mod_ssl/scache(512000)SSLSessionCacheTimeout 300SSLMutex defaultSSLRandomSeed startup file:/dev/urandom 256SSLRandomSeed connect builtinSSLCryptoDevice builtinSetEnvIf User-Agent “.*MSIE.*”<\p>nokeepalive ssl-unclean-shutdown<\p>downgrade-1.0 force-response-1.0″%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x “%r” %b”
# /etc/init.d/httpd restart

Для принудительного перенаправления с http на https добавляем в описание вирт.хоста

либо в .htacccess в корень сайта.

RewriteEngine OnRewriteCond %{HTTPS} offRewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Источник: https://kamaok.org.ua/?p=672

Установка и настройка mod_ssl в Apache на CentOS 5,6, получение SSL сертификата

Если мы хотим чтобы наш сайт на Apache в CentOS 5,6 не похакали сниферофилы и прочие мазакакеры, то нам просто необходимо поприкрывать все, так сказать, слабые места, а также поставить и настроить mod_ssl, получить SSL сертификат для веб сервера.

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

Как обычно под предлогом борьбы с преступностью, борьба реально будет вестись с бизнесом и политически неугодными индивидами путём перехвата и дальнейшего анализа их Интернет трафика (корпоративной почты, посещённых сайтов и пр.). Как там у В. Леонтьева: “Каждый хочет иметь и невесту и друга…”

Или к примеру просто админ сети будет местами шутить, так например вычленит из трафика данные административного акаунта от посещаемого тобой сайта, удалит весь контент с сайта, а вместо него напишет АДМИН ЛОХ!:) или что-то в таком духе. В некоторых вопросах АДМИН конечно ЛОХ но, не до такой же степени, чтобы упустить возможность организации безопасного HTTPS (SSL) соединения с веб сервером Apache для администрирования веб ресурса!:)

Установка mod_ssl и openssl

Для организации безопасного HTTPS (SSL) соединения с веб сервером Apache нам потребуется Apache модуль mod_ssl и собственно сам openssl для создания корневого сертификата и сертификата сервера. Проверим наличие в системе mod_ssl и openssl:

yum list installed | grep mod_ssl
yum list installed | grep openssl

Если mod_ssl и openssl не установлен, то устанавливаем:

yum install mod_ssl
yum install openssl

Самоподписной SSL сертификат сервера Apache

mod_ssl подключается и настраивается через конфигурационный файл /etc/httpd/conf.d/ssl.conf. По умолчанию SSLCertificateFile /etc/pki/tls/certs/localhost.crt и SSLCertificateKeyFile /etc/pki/tls/private/localhost.key уже присутствуют в системе, но желательно бы сгенерировать свой собственный:

openssl genrsa -out ca.key 1024
openssl req -new -key ca.key -out ca.csr
openssl x509 -req -days 99999 -in ca.csr -signkey ca.key -out ca.crt
mv ca.crt /etc/pki/tls/certs
mv ca.key /etc/pki/tls/private/ca.key
mv ca.csr /etc/pki/tls/private/ca.csr

На первом шаге мы создали RSA-ключ нашего сервера, которым на следующем шаге будет подписан так званый CSR (сertificate signing request – запрос на получение сертификата) файл. .csr файл будет в себе содержать информацию о владельце сертификата, которую openssl попросит указать задавая вопросы:

sh-4.1# openssl req -new -key ca.key -out ca.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
—–
Country Name (2 letter code) [XX]:UA
State or Province Name (full name) []:
Locality Name (eg, city) [Default City]:Kiev
Organization Name (eg, company) [Default Company Ltd]:Windows Remote Shaman
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server hostname) []:remoteshaman.com
Email Address []:[email protected]
Please enter the following extra attributes
to be sent with your certificate request
A challenge password []:???
string is too long, it needs to be less than 20 bytes long
A challenge password []:???
An optional company name []:WRS

На третьем этапе мы создаём и подписываем себе свой SSL сертификат.

Нужно учесть, что созданный ранее RSA-ключ, которым был подписан CSR запрос, является уникальным.

Потеряв RSA-ключ, мы сможем сгенерировать новый, но с новым ключом наш сертификат уже будет недействителен. Сохраните RSA-ключ в надежном месте (создайте его резервную копию).

RSA-ключ сервера можно защитить паролем, что обеспечит ему большую защиту, зашифровав его. В случае кражи RSA-ключа никто не сможет ничего им подписать потому, что не знает пароля.

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

Но в нашем случае мы не будем использовать пароль для RSA-ключа.

Сам RSA-ключ является обычным текстовым файлом и содержит в себе примерно такие строки:

—–BEGIN RSA PRIVATE KEY—–
MIICXgIKJ0de98yf98ytguQwYbq1Yf177CBSPVSyl+oMPvc7QKzimldewAosMkcR
BQo/02IbIrZsHw2YHL5+EuxZr0RsdgrewhgrWKa3FWQh00XBDEQCGKQSVAqFyi2J
Bb47nJ5nGfWfetRf33hYlRqN2CluH7uU02qV0fbgd4yjtre4e3Ddp7FblQIDAQAB
R1a/fwOWIhkKGoLAlKPxhgd457659igjgl8o4C+V2Nv/LNDW8nk6qF1/fZ9JLdld
m7vBJRoosa44yfjyu7ik67jng7JjjuqX3ae+Bg4/DFzJh/qyLBwwMHrlnicLxXUL
3w8f+a4t/R4vmh5Pqlep5IorWWfwhNIO2MODfzcN8XeApA==
—–END RSA PRIVATE KEY—–

Важную роль в этом файле играют первая и последняя строки “—–BEGIN RSA PRIVATE KEY—–” и “—–END RSA PRIVATE KEY—–“, где должно быть строго по пять тире. Никогда НЕ исправляйте этот файл в текстовом редакторе вручную.

Теперь обновите конфигурационный файл Apache SSL: vi +/SSLCertificateFile /etc/httpd/conf.d/ssl.conf

Измените полный путь, где хранится новый сертификат: SSLCertificateFile /etc/pki/tls/certs/ca.crt

Установите верный путь к файлу ключа сертификата: SSLCertificateKeyFile /etc/pki/tls/private/ca.key

Для добавления безопасной HTTPS (SSL) версии сайта для виртуального хоста Apache, нужно в его конфиг файле, например vi /etc/httpd/conf.v/wrs.conf, подправить секцию , и модифицировать её до такого состояния:

SSLEngine on SSLCertificateFile /etc/pki/tls/certs/ca.crt SSLCertificateKeyFile /etc/pki/tls/private/ca.key ….

Проверяем конфиги и перезапускаем сервант:

sh-4.1# httpd -t
[Sat Nov 03 08:01:34 2012] [warn] _default_ VirtualHost overlap on port 443, the
first has precedence
Syntax OK
sh-4.1# vi /etc/httpd/conf/httpd.conf
NameVirtualHost *:443
sh-4.1# httpd -t
Syntax OK
service httpd restart

Запуск Apache без ввода пароля для SSL ключа .key

Если вы создавали приватный SSL ключ с его шифрованием openssl genrsa -des3 -out ca.key 2048 и задавали парольную фразу (от 4 до 8191 символов), то при каждом старте/перезапуске веб-сервера будет запрашиваться пароль для приватного SSL ключа .key

Для того чтобы указать веб-серверу путь к файлу пароля от SSL ключа .key делаем:

mkdir /usr/local/etc/rc.d/
cd /usr/local/etc/rc.d/
vi startssl.pl
#!/usr/bin/perl
print ”
“;
chmod 550 startssl.pl

Потом в httpd.conf или в ssl.conf пишем: SSLPassPhraseDialog exec:/usr/local/etc/rc.d/startssl.pl

Если факир был пьян и фокус не удался, то можно удалить пароль из приватного SSL ключа .key следующим образом:

openssl rsa -in ca.key -out ca.pem
rm -f ca.key
mv ca.pem ca.key

Бесплатный, доверенный SSL сертификат сервера Apache

Бесплатный самоподписной SSL сертификат созданный нами ранее подойдёт для нашего персонального сайта, при этом пытаясь посетить сайт на котором организовано безопасное HTTPS (SSL) соединение с самоподписным SSL сертификатом для сервера Apache, пользователь получит в браузер предупреждение о том, что сертификат не является действительным и безопасное HTTPS (SSL) соединение может быть не установлено.

В таких случаях обычно нужно или внести сертификат в исключения браузера, или установить SSL сертификат вручную, для чего обычно достаточно ввести в адресную строку браузера путь к сертификату и открыть его в браузере. Но в браузере Опера 11.

64 даже после установки SSL сертификата, при попытке посетить сайт через https://, в данных о странице будет указанно “Незащищённое соединение”, “Серверу не удалось принять меры безопасности.

” и не ясно, толи соединение вовсе незащищённое, толи соединение защищено частично? Такое загадочное поведение Опера 11.64 характерно для веб-страниц в которые включены сторонние элементы, такие как счётчики, рисунки, скрипты и пр.

, а если на странице нет сторонних элементов, то слева в адресной строке красуется значок замка с надписью “Безопасный” – конечно если SSL сертификат установлен. Примерно так же ведёт себя и Internet Explorer 8.

В опере можно попробовать снять галку с “opera:config -> Security Prefs -> OCSP Validate Certificates“. У браузеров “Chrome” и “FireFox” поведение иное и если на странице присутствуют иные сторонние элементы, которые загружаются со сторонних незащищённых серверов, то в “Chrome” и “FireFox” указывается, что используется частично безопасное HTTPS (SSL) соединение.

Для избавления от всех этих манипуляций в Сети Интернет можно попытаться раздобыть бесплатный доверенный SSL сертификат для веб сервера.

Обычно такие раздачи бесплатных доверенных SSL сертификатов имеют кратковременный характер (выдаются на 30-365 дней) и придуманы для привлечения клиентов.

После истечении срока действия SSL сертификата от авторитетного/доверенного поставщика, он ничем не отличается от самоподписанного.

Список доверенных поставщиков бесплатных SSL сертификатов, у которых можно получить бесплатный доверенный SSL сертификат для веб сервера сроком на 30-365 дней:

  • freessl.su – срок от 30 до 90 дней, поставщик COMODO;
  • instantssl.com – Срок 90 дней, поставщик COMODO;
  • ipsca.com – срок 90 дней, поставщик IpsCA;
  • trustico.eu – срок 30 дней, поставщик GeoTrust;
  • rapidssl.com – срок 30 дней, поставщик – они же – RapidSSL;
  • verisign.com – cрок 14 дней, сертификаты не авторизованные (не стоило бы и упоминать);
  • globalsign.com – срок 30 и 45 дней, поставщики – они же – GlobalSign Inc;
  • ssl.com – срок 30 дней, поставщик COMODO;

Источник: https://www.remoteshaman.com/server/apache/install-apache-mod-ssl-in-centos-56

Настройка безопасного соединения HTTPS с использованием SSL ключа в CentOS

Для того чтобы настроить WEB-сервер с SSL шифрованием вам необходимо установить OpenSSL и mod_ssl. Для этого мы сделаем следующее:

# yum install mod_ssl openssl

Создадим самоподписанный сертификат

Нужно использовать OpenSSL для создания самоподписанного сертификата.
Чтобы создать ключ который будет использоваться в сертификате, мне понадобится права root:

Создим приватный ключ

# openssl genrsa -out ca.key 1024

Создим CSR (Certificate signing request)

# openssl req -new -key ca.key -out ca.csr

Создим самоподписанный ключ (допустим на 1 год — 365 дней)

# openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt

После того как ключик(и) был сгенерирован, необходимо скопировать (положить в нужное место) его/их:

# cp ca.crt /etc/pki/tls/certs # cp ca.key /etc/pki/tls/private/ca.key # cp ca.csr /etc/pki/tls/private/ca.csr

Поправим сейчас файлик с конфигурацией сертификатов, нам нужно найти строчку «SSLCertificateFile» в файле ssl.conf который лежит по пути /etc/httpd/conf.d/, сделать можно это так:

Если Вы фанат текстового редактора «vi»:

# vi +/SSLCertificateFile /etc/httpd/conf.d/ssl.conf

Но я использую текстовый редактор «ee», по этому:

# ee /etc/httpd/conf.d/ssl.conf

В этом файлике нужно раскомментировать необходимые строки, в моем случае это:

SSLCertificateFile /etc/pki/tls/certs/ca.crt # путь к файлу ключа (Certificate Key File) SSLCertificateKeyFile /etc/pki/tls/private/ca.key # путь к файлу приватных ключей

Сохраняемся и ребутнул Apache:

# /etc/init.d/httpd restart

Проверим работу  сертификата который использует протокол https:
https://192.168.77.113/

У вас будет другой адрес, адрес(ServerName) который Вы прописывали в конфиге апача. После того как перейдете по своему адресу вам будет показано сообщение чтобы Вы подтвердили данный сертификат.

Если вы используете виртуальные хосты, то необходимо прописать сертификаты в них:

SSLEngine on SSLCertificateFile /etc/pki/tls/certs/ca.crt SSLCertificateKeyFile /etc/pki/tls/private/ca.key # Установка сертификата SSL в CentOS AllowOverride All DocumentRoot /var/www/vhosts/test.com/httpsdocs ServerName test.com

После чего нужно ребутнуть апачик:

# /etc/init.d/httpd restart

Возможно Вам понадобится прописать в iptables (в вашем фаерволе) правило для данного порта (443), который использует https:

# iptables -A INPUT -p tcp –dport 443 -j ACCEPT # /sbin/service iptables save # iptables -L -v

Установка сертификата SSL в CentOS выполнена. Коротко и понятно.

Источник: http://linux-notes.org/nastrojka-bezopasnogo-soedineniya-https/

Установка SSL сертификата на Apache под CentOS 7

После установки NextCloud, потребовалось иметь доступ к нему с интернета. Для этого было нужно максимально обезопасить соединение. Одним из пунктов был установка ssl сертификата.

Установка зависимых модулей

Для установки сертификата нам необходим certbot и наличие EPEL репозитория, так как оно отключено в CentOS 7 по умолчанию. Также требуется mod_ssl, чтобы Apache мог распознавать шифрование.

Устанавливаем модули:

yum install epel-release mod_ssl

Приготовления завершены. Теперь готовы к установке certbot.

Установка клиента Let’s Encrypt

Установите certbot из EPEL хранилища выполнив команду:

yum install python-certbot-apache

Теперь сertbot установлен и готов к использованию.

Настройка SSL сертификата

Certbot — инструмент для управления SSL сертификатами, также он может генерировать новые сертификаты для необходимого домена.

Для примера создаем сертификат для admincorner.ru:

certbot –apache -d admincorner.ru

Если вы хотите сгенерировать несколько SSL сертификатов для нескольких доменов и субдоменов:

certbot –apache -d admincorner.ru -d www.admincorner.ru

ВАЖНО! Первый домен должен быть базовым доменом, в этом примере это admincorner.ru.

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

Настройка автообновления SSL сертификата

Сертификат Let’s Encrypt действителен в течении 90 дней, но желательно обновлять его каждые 60 дней для избежания возникновения проблем с безопасностью. Сделать это вам поможет сам certbot, с помощью команды renew. После выполнения команды он проверит время до истечения срока действия сертификата.

Обновляем сертификат:

Если установленный сертификат еще действителен, certbot проверит только дату истечения срока годности:

Для автоматизации данного процесса, вы можете настроить cronjob. Откройте crontab:

Эта задача может быть записана в расписание на каждую полночь понедельника.

0 0 * * 1 /usr/bin/certbot renew >> /var/log/sslrenew.log

Журнал выполнения задачи будет выведен в файл /var/log/sslrenew.log.

Заключение

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

Источник: https://admincorner.ru/linux/centos/ssl-certificate-apache-centos-7/

Настройка HTTPS на веб-сервере Apache на CentOS

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

Хотя веб-сервер на основе HTTP очень прост в настройке, он имеет существенный недостаток в плане безопасности. Любой «человек в середине» может видеть содержимое транзитных пакетов с тщательно размещенными снифферами пакетов.

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

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

Чтобы справиться с такими уязвимостями, большинство поставщиков часто предпочитают HTTPS на своих веб-серверах.

Для сайтов типа «только для чтения», где пользователи только читают содержимое и фактически не вводят какую-либо информацию, HTTP по-прежнему является жизнеспособным вариантом.

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

  • Обеспечивает шифрование всех транзитных пакетов на и с серверов.
  • Устанавливает доверие с официальным цифровым сертификатом, так что серверы самозванца не могут претендовать на то, чтобы быть фактическим сервером.

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

  1. Самоподписанные сертификаты рекомендуются для целей тестирования и личных проектов. Самоподписанные сертификаты также применимы для поставщиков услуг, где клиенты-клиенты являются конкретными, а круг доверия ограничен. Самоподписанные сертификаты не стоят денег.
  2. Сертификаты могут быть получены от поставщиков сертификатов на уровне сообществ, таких как StartSSL и CACert, Эти сертификаты также не стоят денег, но рекомендуется для личных проектов.
  3. Для коммерческих проектов, где доступ к веб-сайтам осуществляется глобально, рекомендуется приобрести сертификат у известного доверенного центра сертификации. Эти сертификаты стоят денег, но они повышают доверие к поставщику веб-услуг.

Подготовка

В этой демонстрации мы будем использовать самозаверяющий сертификат. Предполагается, что веб-сервер Apache уже установлен на CentOS. Чтобы создать самозаверяющий сертификат, OpenSSL используется. Если OpenSSL еще не установлен, его можно установить с помощью ням.

# yum install mod_ssl openssl

Создание самоподписанного сертификата

Следующие команды могут использоваться для создания самозаверяющего сертификата.

Во-первых, сгенерируйте закрытый ключ с использованием шифрования 2048.

# openssl genrsa -out ca.key 2048

Затем генерируем запрос на подпись сертификата (КСО).

# openssl req -new -key ca.key -out ca.csr

Наконец, сгенерируйте самозаверяющий сертификат типа X509, который остается действительным для ключей 365.

# openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt

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

# cp ca.crt / etc / pki / tls / certs / # cp ca.key / etc / pki / tls / private /

# cp ca.csr / etc / pki / tls / private /

Настройка веб-сервера Apache

Теперь, когда сертификат готов, настало время настроить веб-сервер Apache.

Сначала отредактируйте следующий файл конфигурации.

# vim /etc/httpd/conf.d/ssl.conf### перезаписать следующие параметры ### SSLCertificateFile /etc/pki/tls/certs/ca.crt SSLCertificateKeyFile /etc/pki/tls/private/ca.key ### Следующий параметр не нужно изменять в случае самозаверяющего сертификата. ### ### Если вы используете настоящий сертификат, вы можете получить комплект сертификатов. Пучок добавляется с использованием следующих параметров: # SSIDertificateChainFile /etc/pki/tls/certs/example.com.ca-bundle

Тогда HTTPD служба возобновляется, чтобы изменения вступили в силу.

Теперь веб-сервер готов к использованию HTTPS.

Настройка виртуальных хостов

Веб-сервер Apache может быть настроен для размещения нескольких веб-сайтов. Эти сайты объявляются виртуальными хостами в HTTPD Файл конфигурации. Например, предположим, что наш веб-сервер Apache размещает сайт virtual-web.example.com, и все файлы сайта хранятся в / Вар / WWW / HTML / виртуального веб каталог.

Для виртуального хоста типичная конфигурация для HTTP будет выглядеть так.

# vim /etc/httpd/conf/httpd.confИмяVirtualHost *: 80 ServerAdmin [email protected] DocumentRoot / var / www / html / virtual-web Имя_сервера virtual-web.example.com

Нам также необходимо создать аналогичное определение для HTTPS.

# vim /etc/httpd/conf/httpd.confИмяVirtualHost *: 443 SSLEngine на SSLCertificateFile /etc/pki/tls/certs/ca.crt SSLCertificateKeyFile /etc/pki/tls/private/ca.key AllowOverride All ServerAdmin [email protected] DocumentRoot / var / www / html / virtual-web Имя_сервера virtual-web.example.com

Для каждого виртуального хоста должны быть определены аналогичные теги. После добавления виртуальных хостов веб-служба перезапускается.

Теперь виртуальные хосты также готовы использовать HTTPS.

Необязательно: принудительное использование веб-сервера Apache для использования HTTPS

Если по какой-то причине вы решили всегда использовать HTTPS на веб-сервере, вам необходимо перенаправить все входящие HTTP-запросы (порт 80) на HTTPS (порт 443). Веб-сервер Apache можно легко настроить для этого.

1. Принуждение только к основному сайту

Чтобы заставить основной сайт всегда использовать HTTPS, мы модифицируем HTTPD Файл конфигурации.

# vim /etc/httpd/conf/httpd.confServerName www.example.com:80 Перенаправление постоянного / https://www.example.com

2. Принуждение виртуальных хостов

Если вы хотите принудительно установить HTTPS на какой-либо виртуальный хост, определение HTTP можно переписать так, как следует.

# vim /etc/httpd/conf/httpd.conf Имя_сервера virtual-web.example.com Перенаправление постоянной / https://virtual-web.example.com/

Подводя итог, HTTPS всегда рекомендуется для сайтов, на которых регистрируются пользователи. Это повышает безопасность как сервера, так и пользователей, которые его используют.

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

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

Надеюсь это поможет.

Источник: https://websetnet.net/ru/setup-https-in-apache-web-server-on-centos/

Безопасный Apache с Let’s Encrypt на CentOS 7

Let’s Encrypt – бесплатный, автоматизированный и открытый центр сертификации, разработанный Исследовательской группой Internet Security Research Group (ISRG).

 Сертификаты, выданные Let’s Encrypt, действительны в течение 90 дней с даты выпуска, и сегодня им доверяют почти все браузеры.

В этой статье мы рассмотрим шаги, необходимые для установки бесплатного SSL-сертификата для шифрования SSL на сервере CentOS 7 с Apache в качестве веб-сервера. Мы будем использовать утилиту certbot для получения и обновления сертификатов Let’s Encrypt.

Предпосылки

Перед продолжением этой статьи, убедитесь, что вы выполнили следующие предварительные условия:

  • Укажите имя домена, указывающий на ваш IP-адрес общего сервера. В этой статье мы будем использовать домен andreyex.ru.
  • Установленный Apache и запущен на сервере.
  • Виртуальный хост Apache для своего домена.
  • Открытые порты 80 и 443 в своем брандмауэре.

Установите следующие пакеты, которые необходимы для SSL-зашифрованного веб-сервера:

yum install mod_ssl openssl

Установка Certbot

Certbot – это инструмент, упрощающий процесс получения SSL-сертификатов от Let’s Encrypt и автоматического включения HTTPS на вашем сервере.

Пакет certbot предоставляется EPEL. Если репозиторий EPEL не установлен в вашей системе, вы можете установить его, используя следующую команду:

sudo yum install epel-release

После того, как репозиторий EPEL включен, установите пакет certbot, введя:

sudo yum install certbot

Создание Dh (Диффи-Хеллман)

Обмен ключами Diffie-Hellman (DH) – это метод безопасного обмена криптографическими ключами по необеспеченному каналу связи. Создайте новый набор параметров 2048 бит DH для усиления безопасности:

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Вы можете изменить размер до 4096 бит, но в этом случае генерация может занять более 30 минут в зависимости от энтропии системы.

Получение сертификата SSL для шифрования

Чтобы получить сертификат SSL для нашего домена, мы собираемся использовать плагин Apache, который работает, создавая временный файл для запрашиваемого домена в каталоге,${webroot-path}/.well-known/acme-challenge, а сервер проверки подлинности Let’s Encrypt делает HTTP-запросы для проверки DNS для запрашиваемого домена разрешение на сервер, на котором выполняется certbot.

Чтобы сделать его более простым, мы собираем все HTTP-запросы для .well-known/acme-challenge в одном каталоге /var/lib/letsencrypt. Следующие команды создадут каталог и сделают его доступным для записи на сервере Apache.

Следующие команды создадут каталог и сделают его доступным для записи на сервере Apache.

mkdir -p /var/lib/letsencrypt/.well-known
chgrp apache /var/lib/letsencrypt
chmod g+s /var/lib/letsencrypt

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

/etc/httpd/conf.d/letsencrypt.conf

Alias /.well-known/acme-challenge/ “/var/lib/letsencrypt/.well-known/acme-challenge/”
AllowOverride None Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Require method GET POST OPTIONS

/etc/httpd/conf.d/ssl-params.conf

SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLHonorCipherOrder On
Header always set Strict-Transport-Security “max-age=63072000; includeSubDomains; preload”
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
# Требует Apache >= 2.4
SSLCompression off
SSLUseStapling on
SSLStaplingCache “shmcb:logs/stapling-cache(150000)”
# Требует Apache >= 2.4.11
SSLSessionTickets Off

В приведенном выше фрагменте используются чипперы, рекомендованные Cipherli.st, позволяющие сшивание OCSP, строгая транспортная безопасность HTTP (HSTS) и использование нескольких HTTP-заголовков, ориентированных на безопасность.

Перезагрузите конфигурацию Apache, чтобы изменения вступили в силу:

sudo systemctl reload httpd

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

sudo certbot certonly –agree-tos –email [email protected] –webroot -w /var/lib/letsencrypt/ -d andreyex.ru -d www.andreyex.ru

Если сертификат SSL будет успешно получен, certbot напечатает следующее сообщение:

Источник: https://andreyex.ru/centos-7/bezopasnyj-apache-s-let-s-encrypt-na-centos-7/

How To Create an SSL Certificate on Apache for CentOS 7

TLS, or “transport layer security”, and its predecessor SSL, which stands for “secure sockets layer”, are web protocols used to wrap normal traffic in a protected, encrypted wrapper.

Using this technology, servers can send traffic safely between the server and the client without the concern that the messages will be intercepted and read by an outside party.

The certificate system also assists users in verifying the identity of the sites that they are connecting with.

In this guide, we will show you how to set up a self-signed SSL certificate for use with an Apache web server on a CentOS 7 machine.

Note: A self-signed certificate will encrypt communication between your server and any clients. However, because it is not signed by any of the trusted certificate authorities included with web browsers, users cannot use the certificate to validate the identity of your server automatically.

A self-signed certificate may be appropriate if you do not have a domain name associated with your server and for instances where the encrypted web interface is not user-facing. If you do have a domain name, in many cases it is better to use a CA-signed certificate. You can find out how to set up a free trusted certificate with the Let's Encrypt project here.

Before you begin with this guide, there are a few steps that need to be completed first.

You will need access to a CentOS 7 server with a non-root user that has sudo privileges. If you haven't configured this yet, you can run through the CentOS 7 initial server setup guide to create this account.

You will also need to have Apache installed in order to configure virtual hosts for it. If you haven't already done so, you can use yum to install Apache through CentOS's default software repositories:

Next, enable Apache as a CentOS service so that it will automatically start after a reboot:

  • sudo systemctl enable httpd.service

After these steps are complete, you can log in as your non-root user account through SSH and continue with the tutorial.

Step One: Install Mod SSL

In order to set up the self-signed certificate, we first have to be sure that mod_ssl, an Apache module that provides support for SSL encryption, is installed the server. We can install mod_ssl with the yum command:

The module will automatically be enabled during installation, and Apache will be able to start using an SSL certificate after it is restarted. You don't need to take any additional steps for mod_ssl to be ready for use.

Step Two: Create a New Certificate

Now that Apache is ready to use encryption, we can move on to generating a new SSL certificate. The certificate will store some basic information about your site, and will be accompanied by a key file that allows the server to securely handle encrypted data.

First, we need to create a new directory to store our private key (the /etc/ssl/certs directory is already available to hold our certificate file):

  • sudo mkdir /etc/ssl/private

Since files kept within this directory must be kept strictly private, we will modify the permissions to make sure only the root user has access:

  • sudo chmod 700 /etc/ssl/private

Now that we have a location to place our files, we can create the SSL key and certificate files with openssl:

  • sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt

After you enter the request, you will be taken to a prompt where you can enter information about your website. Before we go over that, let's take a look at what is happening in the command we are issuing:

  • openssl: This is the basic command line tool for creating and managing OpenSSL certificates, keys, and other files.
  • req -x509: This specifies that we want to use X.509 certificate signing request (CSR) management. The “X.509” is a public key infrastructure standard that SSL and TLS adhere to for key and certificate management.
  • -nodes: This tells OpenSSL to skip the option to secure our certificate with a passphrase. We need Apache to be able to read the file, without user intervention, when the server starts up. A passphrase would prevent this from happening, since we would have to enter it after every restart.
  • -days 365: This option sets the length of time that the certificate will be considered valid. We set it for one year here.
  • -newkey rsa:2048: This specifies that we want to generate a new certificate and a new key at the same time. We did not create the key that is required to sign the certificate in a previous step, so we need to create it along with the certificate. The rsa:2048 portion tells it to make an RSA key that is 2048 bits long.
  • -keyout: This line tells OpenSSL where to place the generated private key file that we are creating.
  • -out: This tells OpenSSL where to place the certificate that we are creating.

Fill out the prompts appropriately. The most important line is the one that requests the Common Name. You need to enter the domain name that you want to be associated with your server. You can enter the public IP address instead if you do not have a domain name.

Источник: https://www.digitalocean.com/community/tutorials/how-to-create-an-ssl-certificate-on-apache-for-centos-7

Установка SSL-сертификата на Apache (Linux)

  • Добавьте приведенные ниже параметры в открытый файл конфигурации:
    SSLEngine on SSLCertificateFile /etc/ssl/mydomain.ru_crt.crt SSLCertificateChainFile /etc/ssl/mydomain.ru_ca.crt

    SSLCertificateKeyFile /etc/ssl/mydomain.ru_key.key

    Где:
    /etc/ssl/mydomain.ru_crt.crt – путь до файла сертификата вашего сайта
    /etc/ssl/mydomain.ru_ca.crt – путь до файла цепочки сертификатов Центра Сертификации (CA)
    /etc/ssl/mydomain.ru_key.key – путь к файлу вашего закрытого ключа

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

    Пример 1 (только HTTPS):

            # The ServerName directive sets the request scheme, hostname and port that         # the server uses to identify itself. This is used when creating         # redirection URLs.

    In the context of virtual hosts, the ServerName         # specifies what hostname must appear in the request's Host: header to         # match this virtual host. For the default virtual host (this file) this         # value is not decisive as it is used as a last resort host regardless.

            # However, you must set it for any further virtual host explicitly.         #ServerName www.mydomain.ru         ServerAdmin webmaster@localhost         DocumentRoot /var/www/html         # Available loglevels: trace8, …, trace1, debug, info, notice, warn,         # error, crit, alert, emerg.

            # It is also possible to configure the loglevel for particular         # modules, e.g.         #LogLevel info ssl:warn         ErrorLog ${APACHE_LOG_DIR}/error.log         CustomLog ${APACHE_LOG_DIR}/access.

    log combined         # For most configuration files from conf-available/, which are         # enabled or disabled at a global level, it is possible to         # include a line for only one particular virtual host.

    For example the         # following line enables the CGI configuration for this host only         # after it has been globally disabled with “a2disconf”.         #Include conf-available/serve-cgi-bin.conf

            SSLEngine on         SSLCertificateFile /etc/ssl/mydomain.ru_crt.crt         SSLCertificateChainFile /etc/ssl/mydomain.ru_ca.crt

            SSLCertificateKeyFile /etc/ssl/mydomain.ru_key.key

    Пример 2 (HTTPS + HTTP):

            # The ServerName directive sets the request scheme, hostname and port that         # the server uses to identify itself. This is used when creating         # redirection URLs.

    In the context of virtual hosts, the ServerName         # specifies what hostname must appear in the request's Host: header to         # match this virtual host. For the default virtual host (this file) this         # value is not decisive as it is used as a last resort host regardless.

            # However, you must set it for any further virtual host explicitly.         #ServerName www.mydomain.ru         ServerAdmin webmaster@localhost         DocumentRoot /var/www/html         # Available loglevels: trace8, …, trace1, debug, info, notice, warn,         # error, crit, alert, emerg.

            # It is also possible to configure the loglevel for particular         # modules, e.g.         #LogLevel info ssl:warn         ErrorLog ${APACHE_LOG_DIR}/error.log         CustomLog ${APACHE_LOG_DIR}/access.

    log combined         # For most configuration files from conf-available/, which are         # enabled or disabled at a global level, it is possible to         # include a line for only one particular virtual host.

    For example the         # following line enables the CGI configuration for this host only         # after it has been globally disabled with “a2disconf”.         #Include conf-available/serve-cgi-bin.conf

            SSLEngine on         SSLCertificateFile /etc/ssl/mydomain.ru_crt.crt         SSLCertificateChainFile /etc/ssl/mydomain.ru_ca.crt

            SSLCertificateKeyFile /etc/ssl/mydomain.ru_key.key

            # The ServerName directive sets the request scheme, hostname and port that         # the server uses to identify itself. This is used when creating         # redirection URLs. In the context of virtual hosts, the ServerName         # specifies what hostname must appear in the request's Host: header to         # match this virtual host. For the default virtual host (this file) this         # value is not decisive as it is used as a last resort host regardless.

            # However, you must set it for any further virtual host explicitly.         #ServerName www.mydomain.ru         ServerAdmin webmaster@localhost         DocumentRoot /var/www/html         # Available loglevels: trace8, …, trace1, debug, info, notice, warn,         # error, crit, alert, emerg.

            # It is also possible to configure the loglevel for particular         # modules, e.g.         #LogLevel info ssl:warn         ErrorLog ${APACHE_LOG_DIR}/error.log         CustomLog ${APACHE_LOG_DIR}/access.

    log combined         # For most configuration files from conf-available/, which are         # enabled or disabled at a global level, it is possible to         # include a line for only one particular virtual host.

    For example the         # following line enables the CGI configuration for this host only         # after it has been globally disabled with “a2disconf”.         #Include conf-available/serve-cgi-bin.conf

  • Источник: https://1cloud.ru/help/ssl/installsslapache

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

    Сегодня уже никому не нужно объяснять что такое перехват трафика и зачем он нужен.

    С массовым нашествием беспроводных (и не всегда хорошо защищённых) методов доступа в Интернет необходимость шифрования сетевого трафика стала очевидной не только для пользователей различных интернет-банкингов, но и для тех, кто просто нуждается в защищённом доступе к своему домашнему компьютеру из кафешки в другом городе. Некоторые, к примеру, любят пользоваться разнообразными веб-приложениями, вроде Feng Office или SubSonic, установленными на домашнем сервере. При этом вовсе не хочется, чтобы доступ к кровному контенту достался ещё кому либо. В одной из предыдущих статей, посвящённых Nginx, мы рассматривали настройку SSL-шифрования сайтов, обслуживаемых этим сервером. Сегодняшняя статья посвящена тем, у кого нет Nginx и/или кто не хочет устанавливать его лишь в качестве TLS-прокси к Apache.

    В данной статье описывается настройка TLS в Apache с использованием self-signed сертификата, что не годится для public-ресурсов, но вполне подойдёт для организации работы с вашим личным/командным сервером.

    При написании заметки в качестве тестовой площадки использовался сервер под управлением Debian 6.0 и Apache 2.2.16.

    Установка OpenSSL

    Прежде чем приступать к настройке SSL-сайта в Apache, необходимо создать ключ шифрования, а также self-signed сертификат этого ключа. Данные действия выполняются утилитами, которые не входят в состав Apache и должны быть установлены отдельно, если их нет в вашей системе. В Debian/Ubuntu всё ставится одной командой:

    # apt-get install openssl

    В других дистрибутивах название пакета скорее всего будет таким же.

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

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

    Создайте каталог, в котором вы намереваетесь хранить закрытый ключ и сертификат сервера:

    # mkdir -p /etc/apache2/ssl

    Теперь можно сгенерировать закрытый ключ и self-signed сертификат для него:

    # openssl req -new -x509 -nodes -out server.crt -keyout server.key

    где server.key — имя файла закрытого ключа, а server.crt — имя файла сертификата.

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

    Generating a 1024 bit RSA private key……………………………………………………..++++++writing new private key to '/etc/apache2/ssl/server.key'You are about to be asked to enter information that will be incorporated into your certificate request.What you are about to enter is what is called a Distinguished Name or a DN.There are quite a few fields but you can leave some blankFor some fields there will be a default value,If you enter '.', the field will be left blank.Country Name (2 letter code) [AU]:State or Province Name (full name) [Some-State]:Locality Name (eg, city) []:Organization Name (eg, company) [Internet Widgits Pty Ltd]:Organizational Unit Name (eg, section) []:Common Name (eg, YOUR name) []:

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

    # chmod 0600 /etc/apache2/ssl/server.key

    Включение mod_ssl

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

    а также включить работу виртуальных хостов на порту 443, отредактировав соответствующий участок файла /etc/apache2/ports.conf:

    <IfModule mod_ssl.c>

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

    Теперь, когда ключ и сертификат готовы, а поддержка SSL в Apache включена, можно приступать к настройке сайта. Создайте конфигурацию виртуального хоста для вашего защищённого сайта (предположим, что вы расположили его в каталоге /var/www/secure) в файле /etc/apache2/site-available/secure:

    <IfModule mod_ssl.c><VirtualHost *:443>ServerName secure.localdomainServerAdmin webmaster@localhostDocumentRoot /var/www/secureSSLCertificateKeyFile /etc/apache2/ssl/server.keySSLCertificateFile    /etc/apache2/ssl/server.crt

    Обратите внимание на директивы SSL:

    • SSLEngine включает или отключает работу модуля mod_ssl;
    • SSLCertificateKeyFile определяет путь к файлу закрытого ключа сервера;
    • SSLCertificateFile определяет путь к файлу сертификата.

    Конечно же, опций, отвечающих за настройку поведения mod_ssl гораздо больше и множество из них определены по умолчанию в файле /etc/apache2/mods-available/ssl.conf.

    Целью данной заметки являлось создание руководства из серии «за две минуты» и поэтому освещён необходимый минимум знаний.

    Желающим углубиться в раскопки недр работы и настройки TLS в Apache советую в первую очередь посетить официальную страницу документации, а также справочник по опциям mod_ssl.

    Теперь, когда всё готово к работе, можно включать созданный виртуальный хост:

    и перезапускать Apache:

    # /etc/init.d/apache2 restart

    Проверка

    Если всё прошло успешно и вы не получили никаких ошибок в результате перезапуска сервера, самое время проверить результаты работы. Открыв в браузере URL вашего сайта, вы должны увидеть предупреждение о риске для вашей безопасности в связи с тем, что сайт использует self-signed сертификат:

    Добавив этот сайт в исключения, вы получите полноценное TLS-шифрование трафика, спрятав таким образом от любопытных глаз ваши диалоги с HTTP-сервером:

    Источник: http://ashep.org/2012/nastrojka-ssl-v-apache/

    Apache – CentOS – Самоподписанный Мультидоменный SSL Сертификат / Apache – CentOS – Self-signed multiple-domain SSL Certificate

        Иногда для сайта бывает нужно создать самоподписанный SSL Сертификат. В Linux системах это делается с помощью openssl пакета.

    Помимо прочего есть потребность в том, чтобы этот сертификат покрывал не одно доменного имя а несколько, плюс IP адреса. Ниже краткая последовательность действий для реализации данной задачи.

    Устанавливаем нужные пакеты: yum – install mod_ssl openssl

    Перемещаемся в директорию вашего сайта, создаём директорию cert и переходим в неё:

    cd /var/www/river.ru/ mkdir cert cd cert

    Копируем стандартный конфигурационный файл openssl.cnf в директорию нашего сайта:

    cp /etc/pki/tls/openssl.cnf /var/www/river.ru/cert/river.ru.cnf (для CentOS)     в других случаях может быть cp /etc/ssl/openssl.cnf /var/www/river.ru/cert/river.ru.cnf

    Открываем на редактирование river.ru.cnf:

    vi /var/www/river.ru/cert/river.ru.cnf

        В секции [ req ] раскомментируем:

    req_extensions = v3_req

        В секции [ v3_req ] добавляем:

    subjectAltName = @alt_names

        Выглядеть будет так:

                [ v3_req ]             # Extensions to add to a certificate request             basicConstraints = CA:FALSE             keyUsage = nonRepudiation, digitalSignature, keyEncipherment             subjectAltName = @alt_names

        В конце файла добавляем (все имена и IP, которые будет покрывать сертификат):

    [ alt_names ] DNS.1 = www.river.ru DNS.2 = river.ru DNS.3 = mail.river.ru IP.1 = 45.87.43.2 IP.2 = 108.54.90.23

    ==============================================================

    Будучи в директории /var/www/river.ru/cert/

            создаём закрытый ключ:

    openssl genrsa -out sanriver.ru.key 2048

            создаём CSR файл:

    openssl req -new -out sanriver.ru.csr -key sanriver.ru.key -config river.ru.cnf

            проверяем:

    openssl req -in sanriver.ru.csr -noout -text

            должны получить:

                …………………………………………………………..             Requested Extensions:                         X509v3 Basic Constraints:                             CA:FALSE                         X509v3 Key Usage:                             Digital Signature, Non Repudiation, Key Encipherment                         X509v3 Subject Alternative Name:

                                DNS:river.ru, DNS:www.river.ru, DNS:river.ru, DNS:mail.river.ru, 

                            IP Address:45.87.43.2, IP Address:108.54.90.23             …………………………………………………………..

    Самоподписываем и создаём сертификат:

    openssl x509 -req -days 3650 -in sanriver.ru.csr -signkey sanriver.ru.key -out sanriver.ru.crt -extensions v3_req -extfile river.ru.cnf

    Упаковываем ключ и сертификат в PKCS12 файл (для IIS):

    openssl pkcs12 -export -in sanriver.ru.crt -inkey sanriver.ru.key -out sanriver.ru.p12

    Урезаем права на созданные файлы:

    chmod 400 /var/www/river.ru/cert/sankuchuk.*

        получим:

            [root@river cert]# ls -l
            total 28
            -rw-r–r–. 1 root root 11237 Apr  5 20:45 river.ru.cnf
            -r——–. 1 root root  1586 Apr  5 20:58 sanriver.ru.crt
            -r——–. 1 root root  1395 Apr  5 20:50 sanriver.ru.csr
            -r——–. 1 root root  1671 Apr  5 20:47 sanriver.ru.key
            -r——–. 1 root root  2725 Apr  5 20:59 sanriver.ru.p12

    ==============================================================

    Открываем VirtualHost conf файл сайта и прописываем:

    vi /etc/httpd/sites-available/river.ru.conf                                 ServerName www.river.ru                     ServerAlias river.ru                     ServerAlias mail.river.ru                     DocumentRoot /var/www/river.ru                     SSLEngine On                     SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire                     SSLCertificateFile /var/www/river.ru/cert/sanriver.ru.crt                     SSLCertificateKeyFile /var/www/river.ru/cert/sanriver.ru.key                                                 Options Indexes FollowSymLinks                             AllowOverride All                             Order allow,deny                             Allow from all                                         ErrorLog /var/www/river.ru/error.log                     CustomLog /var/www/river.ru/requests.log combined            

    Перегружаем Apache:

    systemctl restart httpd.service

    Проверка сертификатов:

    www.digicert.com
    www.sslshopper.com

    Источник: http://it.kuchuk.net/2015/04/apache-centos-ssl-apache-centos-self.html

    Ссылка на основную публикацию