Настройка HTTPS для чайников — klen.github.io
Содержание:
- Введение
- Запрос на получение сертификата (CSR)
- Получение подписанных SSL ключей на 90-дневной период
- Настройка Nginx для работы с SSL
HTTPS (Hypertext Transfer Protocol Secure) — расширение протокола HTTP поддерживающее шифрование. Данные, передаваемые по протоколу HTTPS «упаковываются» в криптографический протокол SSL или TLS, тем самым обеспечивается защита этих данных. В отличие от HTTP для HTTPS по умолчанию используется TCP-порт 443.
В данной статье я расскажу о том, как бесплатно (90 дней) получить сертифицированные SSL ключи для своего сервера и настроить HTTPS соединения. На данный момент в русскоязычных источниках эта информация представлена разрозненно, поэтому данную статью можно использовать как руководство по получению подписанных ключей и быстрой настройке HTTPS.
Чтобы подготовить сервер для обработки https-соединений, администратор должен получить и установить в систему сертификат для этого веб-сервера. Сертификат можно создать самостоятельно с помощью Unix утилиты ssl-ca из пакета OpenSSL, но подписанный данным методом сертификат не является безопасным и большинство браузеров выдают предупреждения об этом. Часть агентов также блокирует сайты с такими сертификатами, например IPhone приложения.
Сертификаты подписанные компаниями-сертификаторами избавлены от данной проблемы, но требуют оплаты для использования. Основные компании-сертификаторы: VerySign, SSLCOM, DigiCert и другие. Так сложилось, что я предпочитаю использовать SSLCOM в основном из-за их 90-дневного бесплатного периода использования для новых ключей, получение которого и будет описано в данной статье. За три месяца можно основательно протестировать проект, понять приоритеты, сделать полноценный запуск и в дальнейшем уже решить будете ли вы продлевать действие сертификата за деньги.
CSR — запрос на получение сертификата, требуется для подписи ключей компанией-сертификатором. Я создаю его в консоли Unix-систем, например в терминале на стороне сервера. Если у вас нет такой возможности, вы можете создать CSR онлайн: https://www.reg.ru/sslcertificate/generate_key_and_csr
Из консоли:
# Создадим директорию для работы mkdir -p ~/csr && cd ~/csr # Создадим приватный ключ и запрос на сертификат openssl req -new -newkey rsa:2048 -nodes -keyout <your_domain_name>.key -out <your_domain_name>.csr
Note
Все поля CSR должны заполняться на английском. Код страны — двух буквенный Alpha2 (RU для России).
your_domain_name — имя домена для которого создается сертификат
Common name — адрес домена (без www). Wildcart записи вида *.domen.com не поддерживаются на бесплатном тарифе.
Пример заполнения:
Скопируйте полученный ключ
Получение подписанных SSL ключей на 90-дневной период
Подписывать ключи будем у http://ssl.com. Для начала работы войдите на сервис или зарегистрируйтесь.
После входа попадаем на страницу задач и выбираем buy certificate для продолжения.
На открывшейся странице выбираем Free SSL.
Нажимаем кнопку GET и попадаем на первый шаг процесса подписания нашего сертификата. В открывшейся странице выберите чекбокс I want to submit my CSR now для добавления полученного нами на предыдущем шаге CSR.
В данной статье мы будем настраивать Nginx поэтому из выпадающего списка я выбрал соответствующую опцию.
Если CSR запрос был сформирован правильно, то на следующем шаге вас попросят принять условия использования. После принятия вы попадаете в форму ввода дополнительной информации, где от вас потребуется ввод адреса и почтового индекса. Далее информация для контактных лиц.
Пятый шаг — подтверждение домена. Возможно два варианта, размещение файла на сервере или подтверждение по электронной почте. Адреса требуемые для подтверждения через email не всегда доступны, поэтому я обычно выкладываю на сервер полученный файл.
Пример конфигурации для Nginx (файл D3AD7299FFC0954B0FD047063ABB7EFD.txt лежит в папке /home/user):
location = /D3AD7299FFC0954B0FD047063ABB7EFD.txt { alias /home/user/D3AD7299FFC0954B0FD047063ABB7EFD.txt; }
После получения подписанного сертификата можно будет удалить файл и изменения в настройках.
Если проверку вы прошли успешно, остается только ждать подтверждения от компании-сертификатора, что может занять от нескольких часов до суток.
После добавления ключей компанией сертификатором вам будет выслано уведомительное письмо. Откройте страницу заказа сертификата и загрузите его к себе на компьютер. Для Nginx вы получите файл ca_bundle.txt
Полученный файл переименуйте в формат <your_domain_name>.bundle.crt и вместе с ключом который мы создали на первом шаге (<your_domain_name>.key) положите на сервер.
И не забудьте обновить сертификаты через три месяца! 🙂
Настройка HTTPS с использованием самозаверяющегося сертификата—Документация (10.4)
В этом разделе показано, как настроить HTTPS для ArcGIS Server с использованием самозаверяющегося сертификата. Для настройки HTTPS с помощью самозаверяющегося сертификата, выполните следующие шаги:
- Создайте новый самозаверяющийся сертификат.
- Настройте ArcGIS Server для использования данного сертификата.
- Настройка всех ГИС-серверов в развернутой системе.
- Настройка HTTPS для сайта.
- Доступ к сайту с помощью HTTPS.
- Импорт сертификата в хранилище сертификатов операционной системы.
Создание нового самозаверяющегося сертификата
- Войдите в ArcGIS Server Administrator Directory по адресу https://gisserver. domain.com:6443/arcgis/admin.
- Перейдите в machines > [имя компьютера] > sslcertificates.
- Щёлкните создать
- Введите значения параметров на этой странице:
- Щелкните Создать, чтобы сформировать сертификат.
Задание в ArcGIS Server использования данного сертификата
Чтобы указать сертификат, который должен использоваться в ArcGIS Server, выполните следующие действия:
- Войдите в ArcGIS Server Administrator Directory по адресу https://gisserver.domain.com:6443/arcgis/admin.
- Перейдите к компьютеры > [имя компьютера].
- Выберите Редактировать.
- Введите имя сертификата, который будет использоваться, в поле SSL-сертификат веб-сервера.
- Нажмите кнопку Сохранить изменения, чтобы применить изменения. Сайт ArcGIS Server будет автоматически перезагружен.
- После перезапуска сайта проверьте, что у вас имеется доступ к URL-адресу https://gisserver. domain.com:6443/arcgis/admin. Если вы не получаете ответа с этого URL-адреса, ArcGIS Server не может использовать сертификат. Выполните вход в ArcGIS Server Administrator Directory по адресу http://gisserver.domain.com:6080/arcgis/admin, отметьте свой сертификат SSL и настройте ArcGIS Server на использование нового или другого сертификата.
- На текущей странице проверьте значение свойства SSL-сертификат веб-сервера, где для HTTPS должен быть указан нужный сертификат.
Настройка всех ГИС-серверов в вашей боевой среде
Если в развернутой системе ArcGIS Server имеется несколько компьютеров, необходимо создать новый самозаверяющийся сертификат для каждого ГИС-сервера, который используется в сайте, и настроить ГИС-сервер на использование этого сертификата.
Настройка HTTPS для сайта
- Проверьте, что вы можете получить доступ к URL-адресу https://gisserver.domain.com:6443/arcgis/admin. Если вы не получаете ответа с этого URL-адреса, ArcGIS Server не может использовать указанный сертификат. Проверьте сертификат и настройте ArcGIS Server на использование нового или другого сертификата.
- Если доступ к URL-адресу https://gisserver.domain.com:6443/arcgis/admin имеется, перейдите к security > config > update.
- Установите параметр Протокол, выбрав опцию Только HTTPS, затем щелкните Обновить.
ArcGIS Web Adaptor потребуется около одной минуты, чтобы распознать изменение протокола связи вашего сайта.
Прежние версии:
В версиях 10.2.1 и ниже требовалась перенастройка ArcGIS Web Adaptor после обновления протокола связи ArcGIS Server. В 10.2.2 и более новых версиях этого больше не требуется.
Доступ к сайту с помощью HTTPS
После настройки HTTPS, ArcGIS Server прослушивает порт 6443 на наличие HTTPS-запросов. Для безопасного доступа к ArcGIS for Server используйте следующие URL-адреса:
ArcGIS Server Manager | https://gisserver. domain.com:6443/arcgis/manager |
ArcGIS Server Services Directory | https://gisserver.domain.com:6443/arcgis/rest/services |
Если переименовать ArcGIS Server при включенном протоколе HTTPS, доступ к ArcGIS Server с использованием HTTPS сохранится, однако необходимо создать новый сертификат и настроить ArcGIS Server на его использование.
Импорт сертификата в хранилище сертификатов операционной системы
Чтобы сервисы ArcGIS, такие как PrintingTools, работали с ArcGIS Server, использующим HTTPS, сертификат должен быть установлен как доверенный:
- Войдите в ArcGIS Server Administrator Directory.
- Перейдите в меню machines > [имя компьютера] > sslcertificates.
- Щелкните на сертификате, используемом ArcGIS Server, и выберите export.
- На компьютере с ArcGIS Server откройте в текстовом редакторе скрипт init_user_param.sh, перейдя в директорию <ArcGIS Server installation directory>/arcgis/server/usr.
- Найдите строку export CA_ROOT_CERTIFICATE_DIR=<Location_to_CA_Root_Certificate> и укажите местоположение, где хранятся все корневые сертификаты центра сертификации. Имейте ввиду, что указанная директория должна быть доступна той учетной записи, которая использовалась для установки ArcGIS Server. Вам потребуется снять комментарии в этих строках, удалив знаки решетки (#).
- Сохраните и закройте скрипт init_user_param.sh.
- Перезапустите ArcGIS for Server. Вы можете сделать это, выполнив скрипт startserver.sh для каждого ГИС-сервера вашего сайта.
- Повторите вышеуказанные шаги для каждого ГИС-сервера вашего сайта.
Отзыв по этому разделу?
Настройка веб-сервера для использования HTTPS
Опубликовано: 13 октября 2020 г. | | на Питер Джервас (Судоер)
Изображение
Изображение MSA-90 с сайта Pixabay
В этой статье обсуждаются и демонстрируются действия по установке и настройке службы httpd
для обслуживания контента по протоколу HTTPS. Цель использования HTTPS, а не базового HTTP, заключается в том, что содержимое шифруется во время его передачи. Это означает, что если кто-то перехватит трафик между вашей системой и веб-сервером, он не сможет увидеть, что было отправлено. Если бы вы обращались к базовому HTTP-серверу, они могли бы видеть контент.
Предварительные условия
После регистрации системы и прикрепления правильных подписок установите httpd
и mod_ssl
:
[root@webserver ~]# dnf install httpd mod_ssl ### Вывод усечен ### Установлены: апр-1.6.3-9.el8.x86_64 apr-util-1.6.1-6.el8.x86_64 apr-util-bdb-1.6.1-6.el8.x86_64 apr-util-openssl-1.6.1-6.el8.x86_64 httpd-2.4.37-21.module+el8.2.0+5008+cca404a3.x86_64 httpd-filesystem-2.4.37-21.module+el8.2.0+5008+cca404a3.noarch httpd-tools-2.4.37-21.module+el8.2.0+5008+cca404a3.x86_64 mod_http2-1.11.3-3.module+el8.2.0+7758+84b4ca3e.1.x86_64 mod_ssl-1:2.4.37-21.module+el8.2.0+5008+cca404a3.x86_64 redhat-logos-httpd-81.1-1.el8.noarch Полный! [root@веб-сервер ~]#
[ Читателям также понравилось: Пережить аудит безопасности с корпоративным Linux ]
Генерация сертификатов
После установки пакетов RPM создайте сертификаты из ЦС по вашему выбору, если у вас их еще нет:
[root@webserver ~]# openssl req -newkey rsa:2048 -nodes -keyout /etc/pki/tls/private/httpd.key -x509 -days 3650 -out /etc/pki/tls/certs/httpd.crt Генерация закрытого ключа RSA ..............++++++ ................................................. ................................++++++ запись нового закрытого ключа в '/etc/pki/tls/private/httpd.key' ----- Вас попросят ввести информацию, которая будет включена в ваш запрос сертификата. То, что вы собираетесь ввести, называется отличительным именем или DN. Полей довольно много, но вы можете оставить некоторые пустыми Для некоторых полей будет значение по умолчанию, Если вы введете «.», поле останется пустым. ----- Название страны (двухбуквенный код) [XX]:US Название штата или провинции (полное название) []: Северная Каролина Название местности (например, город) [Город по умолчанию]: Холли Спрингс Название организации (например, компания) [Компания по умолчанию, ООО]:Пример Co Название организационного подразделения (например, раздел) []:Пример подразделения Обычное имя (например, ваше имя или имя хоста вашего сервера) []:webserver Адрес электронной почты []: root@localhost [root@веб-сервер ~]#
Вы можете проверить, что файлы были созданы:
[root@webserver ~]# ls -l /etc/pki/tls/private/ /etc/pki/tls/certs/ /etc/pki/tls/сертификаты/: всего 4 lwxrwxrwx. 1 root root 49 18 октября 2019 г. ca-bundle.crt -> /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem lwxrwxrwx. 1 root root 55 18 октября 2019 г. ca-bundle.trust.crt -> /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt -rw-r--r--. 1 корень корень 1489 1 окт 12:02 httpd.crt /etc/pki/tls/частный/: всего 4 -rw-------. 1 root root 1704 1 окт 12:00 httpd.key
Теперь, когда сертификаты сгенерированы, вам нужно создать каталог, из которого ваш веб-сервер будет обслуживать контент. Например:
[root@webserver ~]# mkdir /var/www/https
Вы можете поместить образец содержимого в файл index.html :
[root@webserver ~]# echo secure content > / вар/www/https/index.html [root@webserver ~]# cat /var/www/https/index.html безопасный контент [root@webserver ~]#
Безопасность SELinux
Убедитесь, что установлен правильный контекст SELinux:
[root@webserver ~]# ll -Z /var/www всего 0 drwxr-xr-x. 2 root root system_u:object_r:httpd_sys_script_exec_t:s0 6 2 декабря 2019 г. cgi-bin drwxr-xr-x. 2 root root system_u:object_r:httpd_sys_content_t:s0 6 2 декабря 2019 html drwxr-xr-x. 2 root root unconfined_u:object_r:httpd_sys_content_t:s0 6 окт 1 12:34 https [root@webserver ~]#
Также проверьте правильность контекста SELinux для вашего файла index.html :
[root@webserver ~]# ll -Z /var/www/https/index.html -rw-r--r--. 1 root root unconfined_u:object_r:httpd_sys_content_t:s0 15 окт 1 15:07 /var/www/https/index.html [root@веб-сервер ~]#
Теперь, когда у вас есть нужные сертификаты, каталог создан и SELinux работает правильно, скажите httpd
использовать ключи:
[root@webserver ~]# vi /etc/httpd/conf.d/ssl .conf [root@webserver ~]# grep -e httpd.crt -e httpd.key /etc/httpd/conf.d/ssl.conf -B1 #SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateFile /etc/pki/tls/certs/httpd.crt -- #SSLCertificateKeyFile /etc/pki/tls/private/localhost.key SSLCertificateKeyFile /etc/pki/tls/private/httpd. key [root@веб-сервер ~]# [root@webserver ~]# grep DocumentRoot /etc/httpd/conf.d/ssl.conf DocumentRoot "/var/www/https" #DocumentRoot "/var/www/html" [root@веб-сервер ~]#
Настройки брандмауэра
Служба httpd
теперь настроена, но нам нужно убедиться, что трафик разрешен через брандмауэр. Мы включим порт 443, а затем перезагрузим брандмауэр:
[root@webserver ~]# firewall-cmd --permanent --add-port=443/tcp успех [root@webserver ~]# firewall-cmd --reload успех
Окончательная конфигурация и тестирование
Включите запуск службы httpd
при загрузке, а затем перезапустите httpd
служба:
[root@webserver ~]# systemctl включить httpd Создал символическую ссылку /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service. [root@webserver ~]# systemctl перезапустить httpd [root@webserver ~]# статус systemctl httpd ● httpd.service — HTTP-сервер Apache. Загружено: загружено (/usr/lib/systemd/system/httpd. service; включено; предустановка поставщика: отключена) Активно: активно (работает) с четверга 01.10.2020, 12:35:26 по восточному поясному времени; 1 мин 30 с назад Документы: man:httpd.service(8) Основной PID: 33387 (httpd) Статус: "Всего запросов: 1; Бездействующие/Занятые рабочие 100/0; Запросов/сек: 0,0112; Обслужено байтов/сек: 40 Б/сек" Заданий: 213 (лимит: 74790) Память: 35,6 Мб Группа CG: /system.slice/httpd.service ├─33387 /usr/sbin/httpd -DFOREGROUND ├─33390 /usr/sbin/httpd -DFOREGROUND ├─33391 /usr/sbin/httpd -DFOREGROUND ├─33392 /usr/sbin/httpd -DFOREGROUND └─33393 /usr/sbin/httpd -DFOREGROUND 01 октября, 12:35:26 webserver.example.com systemd[1]: запуск HTTP-сервера Apache... 01 октября, 12:35:26 webserver.example.com systemd[1]: запущен HTTP-сервер Apache. 01 октября, 12:35:26 webserver.example.com httpd[33387]: сервер настроен, прослушивание: порт 443, порт 80 [root@веб-сервер ~]#
Вы можете убедиться, что служба работает и прослушивает порт 443, используя netstat
:
[root@webserver ~]# netstat -tlpn Активные интернет-соединения (только серверы) Proto Recv-Q Send-Q Local Address Внешний адрес State PID/имя программы TCP 0 0 192. 168.124.1:53 0.0.0.0:* LISTEN 1505/dnsmasq TCP 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1438/sshd TCP 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1904/кубсд tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd tcp6 0 0 :::80 :::* LISTEN 33387/httpd tcp6 0 0 :::22 :::* LISTEN 1438/sshd tcp6 0 0 ::1:631 :::* LISTEN 1904/cupsd tcp6 0 0 :::443 :::* LISTEN 33387/httpd tcp6 0 0 :::111 :::* LISTEN 1/systemd [root@веб-сервер ~]#
На этом этапе веб-служба должна работать корректно и быть видимой для ваших клиентов. Чтобы убедиться в этом, попробуйте использовать веб-браузер, чтобы попасть на сайт. Если вы используете самозаверяющий сертификат, вам необходимо принять его:
Изображение
Щелкнув значок замка в адресной строке и выбрав «Просмотр сертификата», вы увидите информацию о сертификате, которую вы введено:
Изображение
Вы сможете увидеть содержимое в /var/www/https/index. html 9Файл 0004 передается вам через HTTPS:
Изображение
[ Хотите узнать больше о безопасности? Ознакомьтесь с контрольным списком ИТ-безопасности и соответствия требованиям. ]
Подведение итогов
В этой статье показано, как установить и настроить HTTPS-сервер, а затем убедиться, что служба работает правильно. Дополнительные настройки могут включать настройку удаленного ведения журнала, включение PHP или настройку базы данных для веб-сайта.
Прочтите соответствующие статьи о включении системного администратора
Изображение
Безопасность системного администратора: 8 элементов управления блокировкой Linux
Как защитить вашу систему Linux от нежелательного доступа локально и по сети.
Изображение
Безопасность Linux: еще 8 элементов управления блокировкой системы
Заблокировать систему не сложно, но и не интуитивно. Изучите дополнительные элементы управления безопасностью, реализация которых не будет стоить вам ничего, кроме времени.
Изображение
Предоставление сертификатов CA для инструментов командной строки Linux
Как использовать пакет ca-certificates для управления сертификатами центра сертификации для утилит командной строки.
Темы: линукс Администрирование Linux Безопасность Веб-серверы
Режим только HTTPS в Firefox | Справка Firefox
Настройте Firefox
Обновить Firefox
- Как это работает?
- Скачать свежую копию
Режим «Только HTTPS» заставляет все подключения к веб-сайтам использовать безопасное зашифрованное соединение, называемое HTTPS. Большинство веб-сайтов уже поддерживают HTTPS; некоторые поддерживают как HTTP, так и HTTPS. Включение этого режима гарантирует, что все ваши подключения к веб-сайтам будут обновлены для использования HTTPS и, следовательно, безопасны. Узнайте больше о преимуществах и о том, как включить режим только HTTPS.
- 1 В чем разница между HTTP и HTTPS?
- 2 О режиме только HTTPS
- 3 Включить/отключить режим только HTTPS
- 4 Безопасный сайт недоступен
- 5 Отключить режим только HTTPS для определенных сайтов
- 6 Добавить исключения для веб-сайтов HTTP, когда вы находитесь в режиме только HTTPS
HTTP расшифровывается как Hypertext Transfer Protocol и является основным протоколом для Интернета и кодирует основные взаимодействия между браузерами и веб-серверами. Проблема с обычным HTTP-протоколом заключается в том, что данные, передаваемые с сервера в браузер, не шифруются, то есть данные могут быть просмотрены, украдены или изменены. Протоколы HTTPS исправляют это с помощью сертификата SSL (Secure Sockets Layer), который создает безопасное зашифрованное соединение между сервером и браузером, защищающее конфиденциальную информацию.
Когда вы используете режим только HTTPS, это гарантирует, что все ваши соединения будут зашифрованы и безопасны. Таким образом, вы можете быть уверены, что никто не сможет отслеживать содержимое посещаемых вами страниц или взломать ваше соединение с веб-сайтом, чтобы украсть ваши пароли, информацию о кредитной карте или другую личную информацию. Это особенно полезно, когда вы используете общедоступный Wi-Fi, где вы не можете быть уверены в целостности вашего интернет-соединения.
Например, когда активен режим только HTTPS и посещается такой сайт, как http://example.com
, Firefox автоматически обновится до https://example.com
:
- В строке меню в верхней части экрана нажмите Firefox и выберите «Настройки». Нажмите кнопку меню и выберите «Настройки».
- Выберите Конфиденциальность и безопасность в меню слева.
- Прокрутите вниз до Режим только HTTPS .
- Используйте переключатель, чтобы выбрать, следует ли включить или отключить режим HTTPS-Only или включить его только для частных окон.
Некоторые веб-сайты поддерживают только HTTP, и соединение нельзя обновить. Если режим HTTPS-Only включен, а HTTPS-версия сайта недоступна, вы увидите страницу Secure Site Not Available .
- Щелкните Продолжить на HTTP-сайт, чтобы принять риск и посетить HTTP-версию сайта. Режим HTTPS-Only будет временно отключен для этого сайта.
- Нажмите «Назад», если вы хотите избежать любых незашифрованных подключений.
Если включен режим «Только HTTPS» и вы часто посещаете веб-сайт, который не поддерживает HTTPS или некоторые элементы страницы отображаются неправильно, вы можете отключить режим «Только HTTPS» для этого сайта.
- Нажмите на замок в адресной строке.
- Используйте раскрывающийся список под Режим только HTTPS и выберите Выкл.
Если веб-сайт отображается неправильно, и вы доверяете ему и хотите посетить его, вы можете отключить для этого сайта режим только HTTPS. Исключения позволяют вам посещать HTTP-версию веб-сайта, пока вы просматриваете в режиме только HTTPS. Исключения могут применяться временно для одного сеанса просмотра или постоянно. Чтобы добавить исключение для веб-сайта:
- В строке меню в верхней части экрана нажмите Firefox и выберите «Настройки». Нажмите кнопку меню и выберите «Настройки».
- Выберите Конфиденциальность и безопасность в меню слева.
- Прокрутите вниз до Режим только HTTPS .
- Выберите Включить режим только HTTPS во всех окнах .
- Щелкните Управление исключениями…, чтобы открыть диалоговое окно Исключения .
- Введите точный адрес веб-сайта HTTP, для которого вы хотите отключить режим только HTTPS.
- Выберите «Выключить», чтобы навсегда отключить режим «Только HTTPS» для этого веб-сайта, или выберите «Временно отключить», чтобы отключить его для текущего сеанса просмотра.
- Щелкните Сохранить изменения.