Разное

Https apache: Вы заблудились на сайте компьютерного мастера

12.10.1989

Содержание

Настройка https для Apache в Debian

HTTPS (HyperText Transfer Protocol Secure) это — расширение для протокола HTTP, поддерживающее шифрование. Все передаваемые данные по HTTPS шифруются с помощью протокола SSL или TLS.

Перед началом работы, у вас должны быть сертификаты. Если вы их еще не получили — необходимо выбрать поставщика и купить сертификат. Есть масса поставщиков платных сертификатов: Thawte, Comodoro, GlobalSign и другие. Сейчас есть возможность получить бесплатно сертификат от WoSign.

Настройка для веб-сервера Apache 2.2

Все действия надо выполнять под учетной записью root или с помощью sudo.

Скопируйте следующие файлы в директорию /etc/ssl/:

  • site.ru.key — приватный ключ
  • site.ru.crt — ключ удостоверяющего центра
  • chain_root_bundle.crt — цепочка ключей

Основными являются приватный ключи и ключ центра, цепочки ключей может не быть, но чаще всего он идет в комплекте. Установите на приватный ключ права на чтение только для root

chmod 0600 /etc/ssl/site.ru.key

в конфигурационный файл для виртуального хоста в Apache (/etc/apache2/sites-enabled/site.ru.conf) добавить:

<VirtualHost 2.17.170.232:443>
        ServerName site.ru
        ServerAlias www.site.ru
        DocumentRoot /home/webmaster/domains/site.ru/public_html
        SSLEngine on
        SSLCertificateFile    /etc/ssl/site.ru.crt
        SSLCertificateKeyFile /etc/ssl/site.ru.key
        SSLCertificateChainFile /etc/ssl/chain_root_bundle.crt
        SSLCipherSuite          ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
        SSLHonorCipherOrder     on
        SSLCompression off
        ErrorLog /var/log/apache/site.
ru_error.log CustomLog /var/log/apache/site.ru_access.log combined </VirtualHost>

Комментарии к конфигурации

Указываем ip-адрес сервера и порт

<VirtualHost 2.17.170.232:443>

Указываем, что протокол шифрования включен

SSLEngine on

Путь до ключа от удостоверяющего центра

SSLCertificateFile    /etc/ssl/site.ru.crt

Путь до приватного ключа

SSLCertificateKeyFile /etc/ssl/site.ru.key

Путь до файла с цепочкой ключей

SSLCertificateChainFile /etc/ssl/chain_root_bundle.crt

Определяем допустимые криптографические наборы (алгоритмы обмена ключами и аутентификации). Конкретный набор согласуется клиентом и сервером во время установления соединения

SSLCipherSuite          ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA

Указываем, что модуль mod_ssl для Apache должен использовать приоритеты наборов шифров, заданные сервером в директиве SSLCipherSuite (а не клиентом, то есть браузеру не удастся навязать свои предпочтения)

SSLHonorCipherOrder     on

Далее необходимо выключить поддержку небезопасных протоколов SSLv2, SSLv3 в файле /etc/apache2/mods-enabled/ssl.

conf:

SSLProtocol all -SSLv2 -SSLv3

тестируем синтаксис конфигурационных файлов средствами Apache

apache2ctl configtest

если тест пройден, перезагружаем конфиги

/etc/init.d/apache2 reload

После всех манипуляций, сайт должен открываться по адресу https://site.ru и в начале адресной строки должен появится значок “висячий замок”. Выше описана конфигурация виртуального хоста для Apache 2.2. Если у вас отличается версия Apache или вы используете другой веб-сервер, то вам необходимо сгенерировать свою версию конфига. Для этого воспользуйтесь генератором от Mozilla: https://mozilla.github.io/server-side-tls/ssl-config-generator/

Тестирование работы HTTPS

По завершению необходимо выполнить тестирования работы HTTPS. Для этого воспользуйтесь сервисом: https://www.ssllabs.com/ssltest/analyze.html

Введите полный адрес, включая https и запустите проверку. В среднем проверка занимает от 3 до 6 минут. С такой конфигурацией для Apache 2.2 на одном из сайтов клиента удалось получить рейтинг A.

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

P.S. И да прибудет с вами рейтинг A+

Настройка Apache для работы баз 1С:Предприятие через HTTPS (SSL)

Безопасность для многих всегда идет на первом месте, многие интернет-гиганты, типа Google даже добавляют в свои браузеры предупреждения, что соединение не безопасно, если на сайте не используется SSL-сертификат.
1С:Предприятие тоже может работать по протоколу HTTPS.


Мы предлагаем статью-инструкцию, как настроить HTTPS в Apache таким образом, чтобы 1С:Предприятие работало без проблем через SSL.

Установка Apache

Ну что же начнем…
Для начала установим Apache. Рассмотрим это для 1С:Предприятие x86-64 и для Windows.

1. Идем на сайт https://www.anindya.com/ и качаем файл apache_2.4.23-x64-openssl-1.0.2h.msi (цифры на момент скачивания могут быть другими).

2. Устанавливаем Apache.

Реквизиты в полях Network Domain, Server Name и Administartor Email произвольные.

Жмем Next > Next > Next. Выбираем Typical.

3. Проверим, что сайт доступен по localhost. Откройте браузер и введите localhost в адресную строку. Должна открыться страница с текстом «It Works!«

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

4. Отлично. Apache установлен, теперь давайте настроем его работу по SSL.

Находим в папке c:\Program Files\Apache Software Foundation\Apache2.4\conf файл httpd.conf

Дописываем строку Listen 443
Это стандартный порт HTTPS.

Заставляем Apache слушать и этот порт тоже. Если нам не нужен стандартный 80-ый порт и мы не планируем его использовать, то строку Listen 80 можно закомментировать добавив символ # (решетки) в начале строки. Так же имейте ввиду, что при изменении файлов в папке Program Files потребуется открытие файла в режиме администратора.

Раскомментируем в файле httpd.conf строчку
#LoadModule ssl_module modules/mod_ssl.so
Убрав символ #. Т.е. строка должна стать такой:
LoadModule ssl_module modules/mod_ssl.so

4. В конце файла httpd.conf изменяем

<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin

</IfModule>

на:

<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
SSLSessionCache none
</IfModule>

Записываем файл httpd. conf

5. Из каталога bin установленной папки с Apache cкопируем файлы ssleay32.dll и libeay32.dll в C:\Windows\System32. Так же скопируем файл openssl.cnf из папки c:\Program Files\Apache Software Foundation\Apache2.4\conf\ в папку c:\Program Files\Apache Software Foundation\Apache2.4\bin\.

6. Запустим редактор реестра regedit (Пуск > Выполнить ввести текст regedit и нажать Enter) откроется окно реестра в нем найдем ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Apache2.4
В этой ветке найдем переменную ImagePath и два раза кликнем на ней.

Добавим ключ запуска -D ssl

7. Добавим SSL-сертификаты для домена. Тут есть варианты…

7.1. Если у Вас уже есть SSL-сертификаты для домена, то создайте папку ssl в папке C:\Program Files\Apache Software Foundation\Apache2.4\conf и переместите их туда (файлы *.key и *.cert). Идем на шаг 8.

7.2. Если у Вас нет SSL-сертификатов, то вы можете их сгенерировать самостоятельно.

7.2.1. Открываем командную строку в режиме администратора и переходим в папку bin Apache. Вводим команду:

cd «C:\Program Files\Apache Software Foundation\Apache2.4\bin»

7.2.2. Далее вводим:

openssl req -config openssl.cnf -new -out ssl.csr

Идем по шагам в командной строке и заполняем необходимые поля. То, что вы введете не принципиально. Самое главное на этом этапе надо запомнить пароль (когда спросит pass phrase)

7.2.3. Выполним:

openssl rsa -in privkey.pem -out ssl.key

Спросит пароль, который вы вводили ранее.

7.2.4. Затем:

openssl x509 -in ssl.csr -out ssl.cert -req -signkey ssl.key -days 3000

days — это срок действия сертификата в днях.

7.2.5. Ну и наконец:

openssl x509 -in ssl.cert -out ssl.der.crt -outform DER

7.2.6. Создадим папку ssl в C:\Program Files\Apache Software Foundation\Apache2.4\conf и переместим из папки bin файлы ssl. key и ssl.cert (а вообще можно все сразу туда скопировать, что было получено на шагах 7.2.1. — 7.2.5) из C:\Program Files\Apache Software Foundation\Apache2.4\bin в C:\Program Files\Apache Software Foundation\Apache2.4\conf\ssl.

8. Снова открываем файл httpd.conf из папки C:\Program Files\Apache Software Foundation\Apache2.4\conf и добавляем секцию VirtualHost в самый конец файла httpd.conf:

<VirtualHost demo.soft.ru:443>
SSLEngine On
SSLCertificateFile conf/ssl/ssl.cert
SSLCertificateKeyFile conf/ssl/ssl.key
</VirtualHost>

Вместо адреса demo.soft.ru замените на свой сайт или IP-адрес, а можно вообще поставить звездочку (*) и будет *:443 (это означает, что сработает для всех запросов). Ну и если у вас есть свои ключи, и вы их не генерировали сами, то переименуйте ssl.cert и ssl.key

9. Перезапустим Apache. Открываем Monitor в правом нижнем углу, щелкнем по иконке и нажимаем restart. Если все хорошо, то Apache запустится без ошибок и появится зеленый значок.

10. Пробуем открыть сайт через HTTPS. В нашем случае можно и так https://localhost и вот так https://demo.soft.ru:

Обратите внимание на то, что сертификат самоподписанный и службы типа антивируса Касперского понимают, что дело не очень… Это нормально, так как ваш сертификат не был изготовлен корневыми центрами сертификации. Но если вы захотите использовать https внутри организации, то почему бы и нет?

11. Теперь попробуем запустить 1С. В браузере открывается:

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

Ошибка HTTP при обращении к серверу … Удаленный узел не прошел проверку.

12. Дело в том, что сервер 1С содержит собственный контроль достоверности HTTPS-соединений и корневых центров.
Необходимо открыть папку сервера 1С:Предприятия c:\Program Files\1cv8\8.3. 15.1747\bin\ и в ней найти файл cacert.pem
Он отвечает как раз за эти центры сертификации.

Открываем командную строку и в ней выполняем команду:

openssl x509 -inform der -in ssl.der.crt -out ssl.pem -text -fingerprint -md5

После выполнения команды на экране Вы увидите Fingerprint. Скопируйте его. Это будет строка вида:

MD5 Fingerprint=64:5C:11:03:46:F1:22:9A:5B:C3:DD:AA:CC:EE:FF:A3 

Откройте файл cacert.pem в папка 1С, перейдите в конец файла и с этой строки начинайте добавление своего сертификата в файл cacert.pem. После строки контрольной суммы сертификата, нужно добавить в файл cacert.pem содержимое файла, в который Вы экспортировали сертификат.

После этого запуск тонкого клиента будет работать без ошибок.

Если же и после этого есть ошибки, то можно вообще заставить клиент 1С не проверять сертификат. Для этого необходимо отредактировать информационную базу:


Далее:


Ну и наконец заветное окно:


Пробуем запустить и. ..


Все замечательно работает по https.

Отлично. Вы все настроили!

 19.11.2019 
 Автор: Барилко Виталий
 1С, ssl, apache, настройка, https


Настройка Apache для работы 1С через HTTPS (SSL)

SoftOnIT.RU https://softonit.ru/articles/1c/apache-ssl-1c/ Безопасность для многих всегда идет на первом месте, многие интернет-гиганты, типа Google даже добавляют в … 2019-11-19T00:00:00+03:00 2020-09-08T12:47:23+03:00

Настройка Apache для работы 1С через HTTPS (SSL)

https://softonit.ru

Apache HTTP: настройка HTTPS и SSL

Apache HTTP: настройка HTTPS и SSL

Пример настройки выполняется на:

# httpd -version
Server version: Apache/2.2.29 (Unix)
Server built:   Mar 12 2015 03:50:17
# cat /etc/system-release
Amazon Linux AMI release 2015.03

Содержание

Создание ключей

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

# yum install mod_ssl openssl
# cd /etc/httpd
# mkdir ssl

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

# openssl genrsa -out ca. key 2048
Generating RSA private key, 2048 bit long modulus
..................+++
...........................................+++
e is 65537 (0x10001)

Создаём файл CSR (Certificate signing request):

# 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]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:aws.setevoy.org. ua
Email Address []:[email protected]

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

И создаём самоподписанный сертификат для сервера:

# openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt
Signature ok
subject=/C=UA/L=Kiev/O=Default Company Ltd/CN=aws.setevoy.org.ua/[email protected]
Getting Private key

Настройка Apache HTTP

В файле /etc/httpd/conf/httpd.conf добавляем:

NameVirtualHost *:443

Проверяем:

# httpd -t
Syntax OK

Открываем порт на фаерволе:

# iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]

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

В файле /etc/httpd/conf.d/ssl.conf удаляем описание VirtualHost _default_ – от строки <VirtualHost _default_:443> до </VirtualHost>. (.*)$ https://%{HTTP_HOST}$1 [redirect=301] </VirtualHost>

И добавляем второй виртуалхост – с SSL:

<VirtualHost *:443>
        ServerName aws.setevoy.org.ua
        DocumentRoot /var/www/aws.setevoy.org.ua

        SSLEngine on
        SSLCertificateFile /etc/httpd/ssl/ca.crt
        SSLCertificateKeyFile /etc/httpd/ssl/ca.key

        ErrorLog     /var/log/httpd/aws.setevoy.org.ua-error.log
        CustomLog  /var/log/httpd/aws.setevoy.org.ua-access.log combined

</VirtualHost>

Проверяем:

# httpd -t
Syntax OK

Перезапускаем:

# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]
# curl http://localhost
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h2>Moved Permanently</h2>
<p>The document has moved <a href="https://localhost/">here</a>. </p>
<hr>
<address>Apache/2.2.29 (Amazon) Server at localhost Port 80</address>
</body></html>

И по HTTPS:

# curl https://localhost -k
Hello from SSL

Переадресация работает, SSL работает.


Раздел: Apache HTTP Server HOWTO’s SSH/SSL/TLS Метки: Apache HTTP Server, Linux, openssl, SSL

More results…

Exact matches only

Exact matches only

Search in title

Search in title

Search in content

Search in content

Search in excerpt

Hidden

Hidden

Navigation

a

Самое читаемое

  • CentOS: установка, настройка Zabbix-agent и добавление нового хоста в мониторинг — 507 153 views
  • MySQL/MariaDB: наиболее используемые команды, примеры — 289 207 views
  • BASH: описание циклов for, while, until и примеры использования — 152 200 views
  • Команда find и её опции в примерах — 139 605 views
  • Карта сайта — 128 302 views

Архив месяца

Октябрь 2022
ПнВтСрЧтПтСбВс
 12
3456789
10111213141516
17181920212223
24252627282930
31 

Архивы по годам

Архивы по годам Выберите месяц Октябрь 2022  (4) Сентябрь 2022  (1) Июнь 2022  (1) Май 2022  (1) Апрель 2022  (1) Март 2022  (2) Январь 2022  (1) Декабрь 2021  (3) Ноябрь 2021  (8) Октябрь 2021  (4) Сентябрь 2021  (5) Август 2021  (5) Июль 2021  (6) Июнь 2021  (6) Май 2021  (6) Апрель 2021  (11) Март 2021  (8) Февраль 2021  (6) Январь 2021  (1) Декабрь 2020  (1) Ноябрь 2020  (9) Октябрь 2020  (9) Сентябрь 2020  (4) Август 2020  (8) Июль 2020  (4) Июнь 2020  (3) Май 2020  (5) Апрель 2020  (9) Март 2020  (8) Февраль 2020  (9) Январь 2020  (2) Декабрь 2019  (9) Ноябрь 2019  (9) Октябрь 2019  (11) Сентябрь 2019  (11) Август 2019  (10) Июль 2019  (2) Июнь 2019  (4) Май 2019  (9) Апрель 2019  (13) Март 2019  (32) Февраль 2019  (20) Январь 2019  (10) Декабрь 2018  (9) Ноябрь 2018  (12) Октябрь 2018  (15) Сентябрь 2018  (12) Август 2018  (14) Июль 2018  (17) Июнь 2018  (18) Май 2018  (21) Апрель 2018  (6) Март 2018  (18) Февраль 2018  (7) Январь 2018  (13) Декабрь 2017  (14) Ноябрь 2017  (6) Октябрь 2017  (24) Сентябрь 2017  (13) Август 2017  (15) Июль 2017  (11) Июнь 2017  (11) Май 2017  (11) Апрель 2017  (7) Март 2017  (18) Февраль 2017  (13) Январь 2017  (14) Декабрь 2016  (12) Ноябрь 2016  (15) Октябрь 2016  (13) Сентябрь 2016  (21) Август 2016  (19) Июль 2016  (14) Июнь 2016  (8) Май 2016  (24) Апрель 2016  (15) Март 2016  (19) Февраль 2016  (21) Январь 2016  (19) Декабрь 2015  (17) Ноябрь 2015  (17) Октябрь 2015  (14) Сентябрь 2015  (13) Август 2015  (1) Июль 2015  (20) Июнь 2015  (23) Май 2015  (26) Апрель 2015  (28) Март 2015  (30) Февраль 2015  (26) Январь 2015  (24) Декабрь 2014  (31) Ноябрь 2014  (21) Октябрь 2014  (28) Сентябрь 2014  (23) Август 2014  (31) Июль 2014  (23) Июнь 2014  (11) Май 2014  (14) Апрель 2014  (8) Март 2014  (11) Февраль 2014  (11) Январь 2014  (11) Декабрь 2013  (12) Ноябрь 2013  (23) Октябрь 2013  (20) Сентябрь 2013  (30) Август 2013  (20) Июль 2013  (6) Июнь 2013  (9) Май 2013  (5) Апрель 2013  (13) Март 2013  (22) Февраль 2013  (36) Январь 2013  (10) Декабрь 2012  (4) Ноябрь 2012  (8) Октябрь 2012  (13) Сентябрь 2012  (29) Август 2012  (24) Июль 2012  (18) Июнь 2012  (2) Май 2012  (4) Март 2012  (5) Февраль 2012  (5) Январь 2012  (25) Декабрь 2011  (15) Ноябрь 2011  (6) Август 2011  (13)

Iconic One Theme | Powered by WordPress

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, либо в наши списки рассылки.

Установка CSR и SSL (OpenSSL)

Создайте CSR с помощью OpenSSL и установите сертификат SSL на свой сервер Apache

Используйте инструкции на этой странице, чтобы использовать OpenSSL для создания запроса на подпись сертификата (CSR), а затем для установки сертификата SSL на сервере Apache.

Перезапуск Примечание: После того, как вы установили свой сертификат SSL/TLS и настроили сервер для его использования, вы должны перезапустить свой экземпляр Apache.

Инструкции по Ubuntu см. в разделе Ubuntu Server с Apache2: создание CSR и установка SSL-сертификата (OpenSSL). Инструкции для других ОС/платформ см. в разделе Создание CSR (запрос на подпись сертификата).

Вы можете использовать эти инструкции для создания CSR OpenSSL и установки всех типов SSL-сертификатов DigiCert на вашем сервере Apache: Standard SSL, EV SSL, Multi-Domain SSL, EV Multi-Domain SSL и Wildcard SSL.

  1. Чтобы создать запрос на подпись сертификата (CSR), см. Apache: Создание CSR с помощью OpenSSL.

    Для учебника на испанском языке посетите страницу Apache Crear CSR.

  2. Чтобы установить сертификат SSL, см. раздел Apache: установка и настройка сертификата SSL.

    Посетите новые инструкции на испанском языке для Apache Instalar Certificado SSL.

I. Apache: создание CSR с помощью OpenSSL

Используйте инструкции в этом разделе, чтобы создать свои собственные команды оболочки для создания CSR Apache с OpenSSL.

Рекомендовано:  Сэкономьте время. Используйте мастер DigiCert OpenSSL CSR, чтобы сгенерировать команду OpenSSL для создания CSR Apache. Просто заполните форму, нажмите Сгенерируйте , а затем вставьте настроенную команду OpenSSL в свой терминал.

Как создать CSR для Apache с помощью OpenSSL

Если вы предпочитаете создавать собственные команды оболочки для создания CSR Apache, следуйте приведенным ниже инструкциям.

  1. Войдите на свой сервер через терминальный клиент (ssh).

  2. Команда запуска

    В командной строке введите следующую команду:

    Примечание. Обязательно замените server на имя вашего сервера.

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

  3. Создать файлы

    1. Теперь вы начали процесс создания следующих двух файлов:

      • Файл закрытого ключа : используется для создания CSR, а затем для защиты и проверки соединений с использованием сертификата.
      • Файл запроса на подпись сертификата (CSR) : используется для заказа сертификата SSL, а затем для шифрования сообщений, которые может расшифровать только его соответствующий закрытый ключ.
    2. При появлении запроса  Common Name  (имя домена) введите полное доменное имя (FQDN) для сайта, который вы собираетесь защитить.

      Примечание. Если вы создаете CSR Apache для сертификата Wildcard, убедитесь, что ваше обычное имя начинается со звездочки (например, *.example.com ).

    3. При появлении запроса введите информацию об организации, начиная с географической информации.

      Примечание. Возможно, вы уже настроили информацию по умолчанию.

    4. Теперь ваш файл OpenSSL . csr создан.

  4. Закажите сертификат SSL/TLS

    1. Откройте созданный файл .csr в текстовом редакторе.

    2. Скопируйте текст, включая теги ——BEGIN NEW CERTIFICATE REQUEST—— и ——END NEW CERTIFICATE REQUEST—— , и вставьте его в форму заказа DigiCert.

  5. Сохранить закрытый ключ

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

  6. Установить сертификат

    После того, как вы получили сертификат SSL от DigiCert, вы можете установить его на свой сервер.

II. Apache: установка и настройка SSL-сертификата

Если вам по-прежнему нужно создать запрос на подпись сертификата (CSR) и заказать сертификат, см. статью Apache: создание CSR с помощью OpenSSL.

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

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

  1. Скопируйте файлы сертификатов на свой сервер.

    1. Войдите в свою учетную запись DigiCert и загрузите файлы промежуточного (DigiCertCA.crt) и основного сертификата ( your_domain_name.crt ).

    2. Скопируйте эти файлы вместе с файлом .key, который вы создали при создании CSR, в каталог на сервере, где вы храните сертификат и файлы ключей.

      Примечание. Сделайте их доступными для чтения только пользователю root для повышения безопасности.

  2. Найдите файл конфигурации Apache (httpd. conf), который нужно отредактировать.

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

    • Основной файл конфигурации Apache обычно называется httpd.conf или apache2.conf . Возможные местоположения для этого файла включают /etc/httpd/ или /etc/apache2/. Полный список макетов установки по умолчанию для Apache HTTPD в различных операционных системах и дистрибутивах см. в Httpd Wiki — DistrosDefaultLayout.

    • Часто конфигурация SSL-сертификата находится в блоке в другом файле конфигурации. Файлы конфигурации могут находиться в каталоге, таком как /etc/httpd/vhosts.d/, /etc/httpd/sites/, или в файле с именем httpd-ssl.conf .

    Один из способов найти конфигурацию SSL в дистрибутивах Linux — выполнить поиск с помощью grep, как показано в примере ниже.

    Выполните следующую команду:

      grep -i -r "SSLCertificateFile" /etc/httpd/ 
     

    Примечание: Обязательно замените /etc/httpd/ базовым каталогом для вашей установки Apache.

  3. Определите блок SSL , который необходимо настроить.

    Если ваш сайт должен быть доступен как через безопасное (https), так и через незащищенное (http) соединение, вам нужен виртуальный хост для каждого типа соединения. Сделайте копию существующего незащищенного виртуального хоста и настройте его для SSL, как описано в шаге 4.

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

  4. Настройте блок для сайта с поддержкой SSL

    1. Ниже приведен очень простой пример виртуального хоста, настроенного для SSL. Части, перечисленные синим цветом, — это части, которые необходимо добавить для настройки SSL.

        <Виртуальный хост 192.168.0.1:443>
          Корень документа /var/www/html2
          Имя сервера www.yourdomain.com
              SSLEngine включен
              SSLCertificateFile /path/to/your_domain_name.crt
              SSLCertificateKeyFile /path/to/your_private.key
              SSLCertificateChainFile /path/to/DigiCertCA.crt
            
    2. Убедитесь, что имена файлов соответствуют вашим файлам сертификатов.

      • SSLCertificateFile — это ваш файл сертификата DigiCert (например, your_domain_name.crt ).

      • SSLCertificateKeyFile — это файл . key, сгенерированный при создании CSR (например, your_private.key ).

      • SSLCertificateChainFile — файл промежуточного сертификата DigiCert (например, DigiCertCA.crt )

        Примечание: Если директива SSLCertificateChainFile не работает, попробуйте вместо нее использовать директиву SSLCACertificateFile.

  5. Проверьте файл конфигурации Apache перед перезапуском.

    Перед перезапуском Apache рекомендуется проверить файл конфигурации Apache на наличие ошибок.

    Внимание! Apache больше не запустится, если в файлах конфигурации есть синтаксические ошибки.

    Выполните следующую команду, чтобы проверить файл конфигурации (в некоторых системах это apache2ctl ):

      конфигурационный тест апачектл  
  6. Перезапустите Apache.

    Вы можете использовать команды apachectl для остановки и запуска Apache с поддержкой SSL.

      апачек стоп 
      апачектл старт  

    Перезапуск Примечания:

    Если Apache не перезапускается с поддержкой SSL, попробуйте использовать apachectl startupsl вместо apachectl start . Если поддержка SSL загружается только с apachectl startupsl , мы рекомендуем изменить конфигурацию запуска apache, включив поддержку SSL в обычную команду apachectl start . В противном случае ваш сервер может потребовать ручного перезапуска Apache с помощью apachectl запускает sl в случае перезагрузки сервера. Обычно это включает удаление тегов и , которые окружают вашу конфигурацию SSL.

  7. Поздравляем! Вы успешно установили свой SSL-сертификат.

Проверка установки сертификата SSL/TLS

  1. Тест браузера

    1. Для достижения наилучших результатов обязательно сначала закройте веб-браузер, а затем снова запустите его.

    2. Посетите свой сайт с безопасным URL-адресом https (т. е. перейдите на https://www.example.com вместо http://www.example.com ).

    3. Обязательно протестируйте свой сайт не только в Internet Explorer. IE загружает отсутствующие промежуточные сертификаты; тогда как другие браузеры выдают ошибку, если все сертификаты в цепочке сертификатов установлены неправильно.

  2. DigiCert ® Средство диагностики установки SSL

    Если ваш сайт общедоступен, используйте наш тестер сертификатов сервера, чтобы проверить установку сертификата SSL/TLS; он обнаруживает распространенные проблемы установки.

Поиск и устранение неисправностей

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

  2. Если вы получили предупреждение «не доверено», просмотрите сведения о сертификате, чтобы убедиться, что это именно тот сертификат, который вы ожидаете. Проверьте Субъект , Эмитент и Действителен до полей.

    1. Если это тот сертификат, который вы ожидаете, и сертификат SSL выдан DigiCert, то ваш SSLCertificateChainFile настроен неправильно.

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

      Виртуальные хосты на основе имени невозможны с https, если вы не используете один и тот же сертификат для всех виртуальных хостов (например, подстановочный знак или многодоменный SSL-сертификат ).

      Это не ограничение Apache, а ограничение протокола SSL. Apache должен отправить сертификат во время рукопожатия SSL, прежде чем он получит HTTP-запрос, содержащий заголовок Host. Поэтому Apache всегда отправляет SSLCertificateFile из первого блока , который соответствует IP-адресу и порту запроса.

  3. Чтобы получить помощь по переносу сертификатов на дополнительные серверы или между серверными платформами, см. наши инструкции по экспорту OpenSSL.

  4. Если вам нужно отключить совместимость с SSL версии 2, чтобы соответствовать требованиям PCI Compliance, добавьте следующую директиву в файл конфигурации Apache:

      SSLCipherSuite ВЫСОКИЙ:+СРЕДНИЙ:!SSLv2:!EXP:!ADH:!aNULL:!eNULL:!NULL  

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

  5. Инструкции по устранению распространенных ошибок и дополнительные советы см. в разделе Устранение ошибок SSL-сертификата Apache.

Конфигурация сервера Apache

Для получения информации о конфигурациях сервера Apache, которые могут усилить вашу среду SSL, см. следующие ресурсы:

  • Инструкции по отключению протокола SSL v3 см. в разделе Apache: отключение протокола SSL v3.

  • Сведения о включении полной секретности пересылки см. в разделе Включение совершенной секретности пересылки.

Как выполнить настройку SSL-сертификата Apache

Давайте защитим 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 вашего веб-сервера, чтобы убедиться, что он не подвержен распространенным уязвимостям безопасности.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *