Как создать самоподписанные сертификаты SSL в Ubuntu 20.04 | 18.04 – INFOIT.COM.UA

Как создать самоподписанные сертификаты SSL в Ubuntu 20.04 | 18.04 - INFOIT.COM.UA Сертификаты
Содержание
  1. Что означает красный цвет
  2. Вступление
  3. Настройка маршрутов на основе политик
  4. 1: создание ssl-сертификата
  5. 3: настройка брандмауэра
  6. Как обновить настройки Nginx
  7. Тестируем настройки
  8. Как сделать постоянный редирект?
  9. Автоматическая настройка netplan
  10. Как создать учетную запись пользователя
  11. Как удалить учетную запись пользователя
  12. Маршрутизация для несколько сетевых интерфейсов
  13. Настройка
  14. Настройка nginx для поддержки ssl
  15. Настройка source based routing
  16. Настройка ssl
  17. Немного о ssl-сертификатах
  18. Отключение networkmanager
  19. Отключение автонастройки netplan
  20. Параметры сетевых интерфейсов
  21. Повышение сервера до контроллера домена
  22. Предпосылки
  23. Расположение ключа и сертификата
  24. Создание самоподписанного сертификата
  25. Создание учетной записи пользователя с помощью windows powershell
  26. Удаление учетной записи пользователя с помощью windows powershell
  27. Установка роли active directory domain services
  28. Шаг #2: создание новой директории
  29. Шаг #4: установка сертификата
  30. Шаг 1. создание конфигурации фрагмента с данными ssl-сертификата.
  31. Шаг 1. установка пакета «let’s encrypt»
  32. Шаг 2. создание конфигурации фрагмента для поддержки параметров strong и secure ssl, преодолевающих возможные уязвимости ssl.
  33. Шаг первый — активируйте модуль ssl
  34. Шаг третий. настройка apache для использования ssl.
  35. Шаг четвертый — активируйте виртуальный хост ssl
  36. Заключение

Что означает красный цвет

В этом руководстве мы будем выделять красным цветом те места, в которых пользователю нужно будет ввести какие-либо данные или внести какие-то изменения. В остальном, предложенные команды можно просто скопировать и вставить в командную строку терминала.

Вступление

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

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

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

Примечание. Возможно, вам захочется использовать «Использовать шифрование» вместо самозаверяющего сертификата. Let’s Encrypt — это новый центр сертификации, который выдает бесплатные сертификаты SSL / TLS, которым доверяют большинство веб-браузеров. 

Настройка маршрутов на основе политик

В основе маршрутизации на основе политик лежат таблицы. Для каждой таблицы настраиваются свои маршруты и политики. Проверим наличие в системе пакета iproute2. Если его нет, произведите его установку.

apt install iproute2

Откройте файл с таблицами маршрутизации

nano /etc/iproute2/rt_tables

И добавьте в его конец количество таблиц, соответствующее количеству настраиваемых интерфейсов:

700 700701 701

Формат записи: приоритет (число) пробел название таблицы (число).
Теперь откройте файл Netplan с настройками сетевых интерфейсов. Он расположен по пути /etc/netplan/ и имеет расширение .yaml. В моём случае путь такой:

nano /etc/netplan/50-cloud-init.yaml

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

Для каждого сетевого интерфейса добавляем блоки routes и routing-policy. Итоговая запись для 1 интерфейса будет выглядеть так:

network:
    version: 2
    ethernets:
        enp0s5:
            addresses:
            - 78.89.90.12/24
            gateway4: 78.89.90.1
            match:
                macaddress: 54:43:32:21:10:09
            mtu: 1500
            nameservers:
                addresses:
                - 8.8.8.8
                - 1.1.1.1
                - 8.8.4.4
                search: []
            set-name: enp0s5
            routes:
                - to: 0.0.0.0/0
                  via: 78.89.90.1
                  table: 700
            routing-policy:
                - from: 78.89.90.12
                  table: 700
                  priority: 300

Для других интерфейсов запись будет аналогична, начиная с имени интерфейса (enp0s5), но у других должен отсутствовать параметр gateway4, т.к. шлюз по умолчанию должен быть один. Настройки routes и routing-policy:

  • to – адрес назначения пакета. Для наших целей – любой (0.0.0.0/0)
  • via – адрес шлюза для данного интерфейса
  • table – имя таблицы маршрутизации. Должны быть указаны одинаковые значения в routes и routing-policy для одного интерфейса, но быть различными от интерфейса к интерфейсу. Данные таблицы мы создали в файле rt_tables
  • from – адрес источника пакета. Для целей данного руководства – это IP адрес интерфейса
  • priority – обязательное числовое значение

После внесения настроек и сохранения файла проверим конфигурацию на ошибки:

netplan generate

Подобный вывод укажет на ошибку при их наличии (в данном случае пропущен пробел):

/etc/netplan/50-cloud-init.yaml:23:12: Invalid YAML: inconsistent indentation:
           routes:
           ^

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

netplan apply

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

1: создание ssl-сертификата

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

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

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

Команда задаст ряд вопросов. Рассмотрим компоненты команды подробнее:

  • openssl: базовый инструмент командной строки для создания и управления сертификатами, ключами и другими файлами OpenSSL.
  • req: эта подкоманда указывает, что на данном этапе нужно использовать запрос на подпись сертификата X.509 (CSR). X.509 – это стандарт инфраструктуры открытого ключа, которого придерживаются SSL и TLS при управлении ключами и сертификатами. То есть, данная команда позволяет создать новый сертификат X.509.
  • -x509: эта опция вносит поправку в предыдущую субкоманду, сообщая утилите о том, что вместо запроса на подписание сертификата необходимо создать самоподписанный сертификат.
  • -nodes: пропускает опцию защиты сертификата парольной фразой. Нужно, чтобы при запуске сервер Nginx имел возможность читать файл без вмешательства пользователя. Установив пароль, придется вводить его после каждой перезагрузки.
  • -days 365: эта опция устанавливает срок действия сертификата (как видите, в данном случае сертификат действителен в течение года).
  • -newkey rsa:2048: эта опция позволяет одновременно создать новый сертификат и новый ключ. Поскольку ключ, необходимый для подписания сертификата, не был создан ранее, нужно создать его вместе с сертификатом. Данная опция создаст ключ RSA на 2048 бит.
  • -keyout: эта опция сообщает OpenSSL, куда поместить сгенерированный файл ключа.
  • -out: сообщает OpenSSL, куда поместить созданный сертификат.
Про сертификаты:  UFM 001 - Проведение поверки - Главный форум метрологов

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

Самой важной строкой является Common Name (введите FQDN или свое имя). Как правило, в эту строку вносят доменное имя, с которым нужно связать сервер. В случае если доменного имени нет, внесите в эту строку IP-адрес сервера. В целом эти поля выглядят примерно так:

3: настройка брандмауэра

Если вы включили брандмауэр ufw (согласно мануалу по начальной настройке), на данном этапе его нужно настроить для поддержки трафика SSL. К счастью, веб-сервер Nginx регистрирует при установке несколько своих профилей в ufw.

Чтобы просмотреть доступные профили, введите:

Как обновить настройки Nginx

После корректировки настроек веб-сервера и брандмауэра нужно перезапустить Nginx, чтобы все изменения вступили в силу. Проверьте синтаксис на наличие ошибок с помощью:

sudo nginx -t

Если все правильно, на экране вы увидите:

nginx: [warn] "ssl_stapling" ignored, issuer certificate not found
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

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

sudo systemctl restart nginx

Тестируем настройки

Нам нужно убедиться, что трафик между клиентом и сервером шифруется. Это можно сделать, открыв в браузере ссылку:

Как сделать постоянный редирект?

Если работа всех настроек сервера правильная, можно вместо временного редиректа ставить постоянный. Для этого откроем файл блока server:

sudo nano /etc/nginx/sites-available/default

В нем нужно найти return 302 и заменить значение на 301. Получится следующее:

Автоматическая настройка netplan

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

Чтобы наши настройки не перезаписались во время перезагрузки, необходимо отключить автоматическую настройку сети. После того, как Вы убедитесь, что необходимое количество интерфейсов добавлено на сервер, создайте на нём файл:nano /etc/cloud/cloud.cfg.

Как создать учетную запись пользователя

Давайте создадим учетную запись пользователя AD несколькими способами.

Как удалить учетную запись пользователя

Для того чтобы удалить пользователя из Active Directory, используйте один из следующих методов. Обратите внимание, что это не приведет к полному удалению УЗ, если у вас настроена корзина AD Recycle Bin.

Маршрутизация для несколько сетевых интерфейсов

Задача обеспечения доступности сервера через несколько сетевых подключений и IP адресов будет решена с использованием маршрутизации на основе политик, а именно на основе адреса отправителя. Таким образом, каждый пакет будет отправлен с сервера через тот же адрес, через который и попал на него. В первую очередь нужно создать таблицы маршрутизации для данной цели, а для этого нужен пакет iproute2. Если он отсутствует в системе, необходимо его установить:

apt-get install iproute2

nano /etc/iproute2/rt_tables

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

50 5051 5152 52

Таким образом, мы добавим 3 таблицы. Теперь пришло время добавить настройки маршрутизации в Netplan, откройте его конфиг по пути /etc/netplan/ с расширением .yaml (имя файла может отличаться в Вашей системе):

nano /etc/netplan/50-cloud-init.yaml

Netplan чувствителен к форматированию в файле конфигурации. Очень важно соблюсти правильное количество пробелов и не использовать табуляции, иначе результат не пройдёт проверку. Корректный пример приведен ниже. В нём показан блок настроек для одного интерфейса (enp0s5), такие же блоки Вы увидите в конфиге для каждого из подключений. В каждый из блоков надо добавить настройки routes и routing-policy, а остальные настройки оставить как есть. Расшифровка добавляемых значений:

  • to – IP подсети назначения любой – 0.0.0.0/0
  • via – IP шлюза текущего сетевого подключения
  • table – имя одной из добавленных в rt_tables таблиц. Должно совпадать в routes и routing-policy каждого подключения. Но для разных интерфейсов – разные таблицы.
  • from – IP адрес данного интерфейса
  • priority – можно не менять
network:
    version: 2
    ethernets:
        enp0s5:
            addresses:
            - 11.22.33.44/24
            gateway4: 11.22.33.1
            match:
                macaddress: 00:99:88:77:66:55
            mtu: 1500
            nameservers:
                addresses:
                - 8.8.8.8
                - 1.1.1.1
                - 8.8.4.4
                search: []
            set-name: enp0s5
            routes:
                - to: 0.0.0.0/0
                  via: 11.22.33.1
                  table: 50
            routing-policy:
                - from: 11.22.33.44
                  table: 50
                  priority: 300

После завершения редактирования конфигурации, убедимся в ее корректности:

netplan generate

Если вывод пустой, значит всё сделано верно. Если же есть ошибки, Вы увидите нечто подобное:

/etc/netplan/50-cloud-init.yaml:24:1: Invalid YAML: tabs are not allowed for indent:
		- to: 0.0.0.0/0
^

В данном примере обнаружены табуляции. После исправления ошибок и успешного прохождения проверки примените изменения:

netplan apply

Теперь сервер будет доступен по всем настроенным таким образом IP адресам.

Настройка

Для того, чтобы сгенерировать сертификат, вам необходимо обладать root-правами на вашем сервере (в системе 1cloud такие права пользователи получают по-умолчанию). Кроме того, необходимо установить веб-сервер Apache (о том, как это сделать написано в нашей статье «Как установить LAMP-стек (Linux, Apache, MySqL, PHP) на сервере с Ubuntu»).

Если Apache еще не установлен на сервере, это можно сделать с помощью специальной команды:

sudo apt-get install apache2

Настройка nginx для поддержки ssl

В мануале предполагается, что вы используете виртуальный хост (блок server) default, который хранится в каталоге /etc/nginx/sites-available. Если вы используете другой файл, пожалуйста, укажите его имя.

Для начала создайте резервную копию файла блока server.

Настройка source based routing

Проверим присутствует ли пакет iproute. Если нет, установите его.

dnf install iproute

Создадим новые таблицы для настройки политик маршрутизации.

nano /etc/iproute2/rt_tables

В конец файла добавим записи:

300 300301 301

Каждая строка – это новая таблица. Формат записи – приоритет пробел название таблицы. Данные значения должны быть уникальны относительно других записей в файле. Приоритет имеет числовое значение, а название таблицы может содержать и буквы. Добавьте столько новых таблиц, сколько интерфейсов Вы настраиваете.
В следующих файлах будут указаны настройки маршрутизации. Для каждого интерфейса нужно создать по паре файлов: rule-eth-name, route-eth-name, где eth-name заменить на имя интерфейса. Пример для интерфейса enp0s5:

Про сертификаты:  Создание самоподписанного SSL-сертификата для Nginx в Ubuntu 16.04 | 8HOST.COM

nano /etc/sysconfig/network-scripts/rule-enp0s5

Вставляем в него следующую строку с актуальным IP адресом вместо 34.56.78.90 и именем таблицы, созданной на предыдущем шаге вместо 300:

from 34.56.78.90 lookup 300

nano /etc/sysconfig/network-scripts/route-enp0s5

Заменяем 34.56.78.0/24 на адрес своей подсети, enp0s5 – на имя интерфейса, 300 на название соответствующей таблицы, а 34.56.78.1 на шлюз для маршрутизации трафика и вставляем в открытый файл:

34.56.78.0/24 dev enp0s5 table 300default dev enp0s5 via 34.56.78.1 table 300

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

systemctl restart network

Настройка ssl

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

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

sudo nano /etc/nginx/snippets/ssl-params.conf

Для безопасной настройки SSL обратимся к рекомендациям Remy van Elst на сайте Cipherli.st. Этот сайт предназначен для распространения простых и надёжных параметров шифрования для популярного программного обеспечения.

Примечание: Данный список настроек подходит для более новых клиентов. Чтобы получить настройки для других клиентов, перейдите по ссылке Yes, give me a ciphersuite that works with legacy / old software.

Скопируйте все предложенные параметры. Остаётся только добавить в них DNS резолвер для upstream запросов. В руководстве для этого используется Google.

Также нужно отключить заголовок Strict-Transport-Security (HSTS). Предварительная загрузка заголовка HSTS обеспечивает повышенную безопасность, но может иметь далеко идущие последствия, если заголовок был включен случайно или некорректно. В этом мануале мы не будем включать эту опцию, но вы можете изменить это позже, если уверены, что понимаете последствия.

Немного о ssl-сертификатах

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

Отключение networkmanager

Настройку маршрутизации на основе политик мы будем осуществлять с помощью network-scripts, поэтому отключим NetworkManager и связанные службы:

systemctl mask NetworkManager.servicesystemctl stop NetworkManager.servicesystemctl mask NetworkManager-wait-online.servicesystemctl mask NetworkManager-dispatcher.service

Установим пакет network-scripts

dnf install network-scripts

systemctl enable networksystemctl start network

Отключение автонастройки netplan

При создании сервера Ubuntu 18.04 в Serverspace или добавлении к нему новых сетевых интерфейсов из панели управления происходит автоматическая настройка параметров подключений. Кроме того, во время перезагрузки системы файл конфигурации Netplan тоже перезаписывается актуальными параметрами.

Поэтому любые его изменения, сделанный в ручном режиме, будут потеряны. Чтобы этого избежать, можно отключить данную функцию. Для начала убедитесь, что Вы добавили необходимое количество сетевых адаптеров к серверу, а затем создайте файл:nano /etc/cloud/cloud.cfg.

Параметры сетевых интерфейсов

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

Откройте файл настроек сетевого интерфейса. Их имена можно посмотреть с помощью команды ip a или же задать новые, если они не настроены.

nano /etc/sysconfig/network-scripts/ifcfg-enp0s5

Конфигурацию ниже можно скопировать и заменить следующие значения на свои:

  • имя интерфейса (enp0s5)
  • шлюз (GATEWAY)
  • MAC-адрес (HWADDR)
  • IP адрес (IPADDR)
  • маска подсети (NETMASK)

BOOTPROTO=noneDEFROUTE=yesDEVICE=enp0s5GATEWAY=34.56.78.1HWADDR=99:88:77:66:55:44IPADDR=34.56.78.90MTU=1500NETMASK=255.255.255.0ONBOOT=yesSTARTMODE=autoTYPE=Ethernet

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

Повышение сервера до контроллера домена

После завершения установки роли, если вы не закроете окно, вам будет предложено повысить сервер до контроллера домена (DC). Ссылка будет выделена синим текстом.

Как создать самоподписанные сертификаты SSL в Ubuntu 20.04 | 18.04 - INFOIT.COM.UA

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

Как создать самоподписанные сертификаты SSL в Ubuntu 20.04 | 18.04 - INFOIT.COM.UA

Нажмите на «Повысить роль этого сервера до уровня контроллера домена» (Promote server to domain controller). По сути, это мастер конфигурации развертывания Active Directory, который поможет вам создать первый лес в Active Directory.

В разделе «Конфигурация развертывания» (Deployment Configuration), включите опцию «Добавить новый лес» “Add a new forest”, а затем введите желаемое имя домена. В моем случае это office.local, и нажмите Next.

Как создать самоподписанные сертификаты SSL в Ubuntu 20.04 | 18.04 - INFOIT.COM.UA

В разделе «Параметры контроллера домена» (Domain Controller Options) выберите функциональный уровень леса и домена. Если это ваш первый лес на Windows Server 2021, оставьте значения по умолчанию. В противном случае, если в вашей бизнес-инфраструктуре есть другие контроллеры домена, вам следует узнать их функциональный уровень, прежде чем приступать к необходимым действиям.

Включите опцию сервера системы доменных имен (DNS), чтобы также установить роль DNS на том же сервере, если вы не сделали этого раньше.

Также введите (дважды) пароль Directory Services Restore Mode (DSRM), обязательно запишите его в документации и нажмите Next, чтобы продолжить.

Как создать самоподписанные сертификаты SSL в Ubuntu 20.04 | 18.04 - INFOIT.COM.UA

В подразделе «Параметры DNS» (DNS Options) вы увидите предупреждающее сообщение, но в данный момент оно не должно вас беспокоить. Просто нажмите “Next”, чтобы продолжить.

Как создать самоподписанные сертификаты SSL в Ubuntu 20.04 | 18.04 - INFOIT.COM.UA

В разделе «Дополнительные параметры» (Additional Options) оставьте имя NetBIOS по умолчанию и нажмите Next, чтобы продолжить.

Как создать самоподписанные сертификаты SSL в Ubuntu 20.04 | 18.04 - INFOIT.COM.UA

В разделе «Пути» (Paths) выберите, где на вашем сервере будут располагаться папки NTDS, SYSVOL и LOG. В моем случае я оставлю значения по умолчанию, вы можете выбрать другой диск в зависимости от ваших предпочтений и настроек.

Как создать самоподписанные сертификаты SSL в Ubuntu 20.04 | 18.04 - INFOIT.COM.UA

В разделе «Просмотреть параметры» (Review Options) вы увидите сводку выбранных вами параметров. Убедившись, что вы не допустили ошибок, нажмите Next.

В разделе «Проверка предварительных требований» “Prerequisites Check” будут проверены предварительные условия. Здесь, если возникнет хотя бы одна ошибка, вы не сможете продолжить, и вам нужно будет ее исправить. В противном случае, если отображаются только предупреждающие сообщения (которые являются наиболее распространенными), но проверка прошла успешно, как показано на рисунке, нажмите кнопку Install, чтобы продолжить.

Про сертификаты:  60002-15: НАМИ Трансформаторы напряжения антирезонансные трехфазные - Производители и поставщики

Как создать самоподписанные сертификаты SSL в Ubuntu 20.04 | 18.04 - INFOIT.COM.UA

На этом этапе вам нужно будет подождать несколько минут, пока завершится процесс установки. Сразу после этого сервер автоматически перезагрузится.

Как создать самоподписанные сертификаты SSL в Ubuntu 20.04 | 18.04 - INFOIT.COM.UA

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

Как создать самоподписанные сертификаты SSL в Ubuntu 20.04 | 18.04 - INFOIT.COM.UA

Предпосылки

Хорошо настроенный сервер с привилегиями root и библиотекой OpenSSL.

Библиотека OpenSSL требуется для создания собственного сертификата.

Выполните следующую команду на своем сервере ubuntu, чтобы узнать, установлен ли у вас OpenSSL.

# which openssl
/usr/bin/openssl

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

# apt install openssl

Расположение ключа и сертификата

Создайте новый сниппет Nginx в каталоге /etc/nginx/snippets.

Рекомендуется указать в названии файла его назначение (к примеру, self-signed.conf):

sudo nano /etc/nginx/snippets/self-signed.conf

В этот файл нужно добавить директиву ssl_certificate, которая будет указывать путь к сертификату, и директиву ssl_certificate_key, которая задаёт путь к соответствующему закрытому ключу.

ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;

Сохраните и закройте файл.

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

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

Ключ SSL хранится на сервере ограниченным пользователем root.

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

Открытый SSL-сертификат предоставляется всем, кто запрашивает контент.

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

Создание учетной записи пользователя с помощью windows powershell

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

Удаление учетной записи пользователя с помощью windows powershell

Используйте следующий PowerShell код для удаления пользователя из AD, синтаксис для примера использован такой же, как и в примере выше:

Установка роли active directory domain services

Прежде чем приступить к выполнению этого шага, необходимо настроить на сервере статический IP-адрес, а также изменить имя Windows Server в соответствии со стандартами именования вашей компании. После того как сделаете это, приступайте к установке ADDS.

Откройте управление сервером (Server Manager), нажмите Управление (Manage), а затем  «Добавить роли и компоненты» (Add Roles and Features).

Как создать самоподписанные сертификаты SSL в Ubuntu 20.04 | 18.04 - INFOIT.COM.UA

Сразу после этого откроется окно мастера. В разделе “Before You Begin” нажмите “Next”, чтобы продолжить.

В разделе «Тип установки»  (Installation Type) выберите установку на основе ролей сервера или на основе функции виртуальной инфраструктуры и нажмите Next, чтобы продолжить. В нашем случае используем первый вариант.

Как создать самоподписанные сертификаты SSL в Ubuntu 20.04 | 18.04 - INFOIT.COM.UA

В разделе «Выбор сервера» (Server selection) убедитесь, что выбран нужный сервер, обычно он выделен по умолчанию и нажмите Next.

Как создать самоподписанные сертификаты SSL в Ubuntu 20.04 | 18.04 - INFOIT.COM.UA

В разделе «Роли сервера» (Server Roles) выберите Доменные службы Active Directory (Active Directory Domain Services). После этого вам будет предложено добавить некоторые дополнительные функции. Нажмите кнопку Add Features, а затем нажмите Next, чтобы продолжить.

Как создать самоподписанные сертификаты SSL в Ubuntu 20.04 | 18.04 - INFOIT.COM.UA

В разделе «Компоненты» (“Features”) вам не нужно ничего выбирать, просто нажмите Next для продолжения.

Как создать самоподписанные сертификаты SSL в Ubuntu 20.04 | 18.04 - INFOIT.COM.UA

В разделе AD DS отображается некоторая информация о AD DS, просто нажмите Next.

Наконец, в разделе «Подтверждение» (“Confirmation”) нажмите кнопку Install, чтобы перейти к установке роли.

Как создать самоподписанные сертификаты SSL в Ubuntu 20.04 | 18.04 - INFOIT.COM.UA

Шаг #2: создание новой директории

Нужно создать новую директорию (то есть папку), где будут хранится ключ сервера и сам сертификат:

sudo mkdir /etc/apache2/ssl

Шаг #4: установка сертификата

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

nano /etc/apache2/sites-available/default-ssl

Здесь в секции, начинающейся со слов <virtualhost _default_:443=””>, нужно дописать строку с именем сервера (ServerName):

Шаг 1. создание конфигурации фрагмента с данными ssl-сертификата.

Давайте создадим новый файл конфигурации snippet, а именно «self-signed.conf», для указания наших сгенерированных сведений о самоподписываемом сертификате внутри папки фрагмента Nginx: /etc/nginx/snippets/, как показано ниже:

Шаг 1. установка пакета «let’s encrypt»

Процесс установки пакета «Let’s Encrypt» со всеми его зависимостями предельно прост – достаточно ввести команду:

sudo apt install letsencrypt

Шаг 2. создание конфигурации фрагмента для поддержки параметров strong и secure ssl, преодолевающих возможные уязвимости ssl.

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

Я настроил свой Nginx с помощью сильного набора SSL-шифров и включил некоторые дополнительные функции для обеспечения безопасности сервера.

Все эти параметры включены в файл: /etc/nginx/snippets/ssl-params.conf

cat /etc/nginx/snippets/ssl-params.conf
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH AESGCM:EDH AESGCM:AES256 EECDH:AES256 EDH";
ssl_ecdh_curve secp384r1;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling off;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;

ssl_dhparam /etc/ssl/certs/dhparam.pem;

Как вы можете видеть, мы установили параметр ssl_dhparam для указания на файл Diffie-Hellman, который мы сгенерировали ранее.

После внесения этих изменений вы можете сохранить конфигурацию и выйти.

Шаг первый — активируйте модуль ssl

Поддержка SSL фактически входит в пакет Ubuntu 14.04 Apache. Нам просто нужно включить его для использования SSL в нашей системе.

Включите модуль, набрав:

sudo a2enmod ssl

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

sudo service apache2 restart

Таким образом, наш веб-сервер теперь может обрабатывать SSL, если мы его настроим.

Шаг третий. настройка apache для использования ssl.

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

Вместо того, чтобы привязать наш файл конфигурации к 000-default.confфайлу в sites-availableподкаталоге, мы собираемся настроить эту конфигурацию в default-ssl.confфайле, который содержит определенную конфигурацию SSL по умолчанию.

Теперь откройте файл с правами root:

sudo nano /etc/apache2/sites-available/default-ssl.conf

С удалением комментариев файл выглядит примерно так:

Шаг четвертый — активируйте виртуальный хост ssl

Теперь, когда мы настроили наш виртуальный хост с поддержкой SSL, нам нужно включить его.

Мы можем сделать это, набрав:

sudo a2ensite default-ssl.conf

Затем нам нужно перезапустить Apache для загрузки нашего нового файла виртуального хоста:

sudo service apache2 restart

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

Заключение

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

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

Tags:

Оцените статью
Мой сертификат
Добавить комментарий