Linux add self signed certificate

Linux add self signed certificate

The procedures in this section show you how to add the self-signed certificates generated during Kaspersky Scan Engine installation to the trusted storage. This will remove the security warnings generated by browsers.

The information in this section is applicable to the situation when the user gains access to Kaspersky Scan Engine GUI from the same computer on which Kaspersky Scan Engine GUI runs. If the Settings > ServerSettings > ConnectionString element of the Kaspersky Scan Engine configuration file refers to an external interface, the Kaspersky Scan Engine GUI website will not be considered trusted, because the self-signed certificate can be used only with https://127.0.0.1 and https://localhost addresses.

To avoid potential security risks, it is recommended to use a trusted certificate signed by a certificate authority (CA). For more information, see section «Generating SSL certificates for Kaspersky Scan Engine GUI».

Causing a self-signed certificate to be trusted by a browser (Kaspersky Scan Engine GUI opens in Mozilla Firefox)

You add Kaspersky Scan Engine GUI to the list of Mozilla Firefox trusted sites so that the browser will not display warnings about the certificate.

Causing a self-signed certificate to be trusted by a browser (Kaspersky Scan Engine GUI opens in a browser for Linux)

Procedures for using a browser to import a certificate as trusted (on Linux systems) vary depending on the browser and Linux distribution used. But the procedures share common steps: to open the browser settings form and use the form to import the certificate to a store.

To manually cause a self-signed certificate to be trusted by a browser on a Linux system:

    Create a /usr/local/share/ca-certificates/ directory if it does not exist on your computer:

Copy your root certificate (.crt file) to the created directory:

Update the certificates:

If you do not have the ca-certificates package, install it with your package manager.

Removing a certificate from the list of trusted ones

After you have reconfigured or uninstalled Kaspersky Scan Engine, old certificates are no longer used by Kaspersky Scan Engine GUI. You can remove them from the list of trusted certificates.

On a Linux system, the removal procedure is performed in a way that is similar to the addition of a certificate: open the list of the trusted certificates and remove those that you do not need.

Источник

Создание самоподписанных сертификатов SSL для Apache в Ubuntu 18.04

Published on January 7, 2020

Предыдущая версия данного обучающего руководства была написана Джастином Эллингвудом

Введение

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

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

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

Читайте также:  Создать правило windows firewall что это

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

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

Предварительные требования

Для начала у вас должен быть пользователь без прав root с привилегиями sudo . Чтобы создать такую учетную запись пользователя, следуйте указаниям руководства «Начальная настройка сервера с Ubuntu 18.04».

Также вам потребуется установить веб-сервер Apache. Если вы хотите установить на сервере полный комплект LAMP (Linux, Apache, MySQL, PHP), следуйте указаниям обучающего модуля «Установка LAMP в Ubuntu 18.04». Если вы хотите просто установить веб-сервер Apache, пропустите шаги, относящиеся к установке PHP и MySQL.

Когда предварительные требования будут выполнены, переходите к приведенным ниже шагам.

Шаг 1 – Создание сертификата SSL

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

Мы можем создать самоподписанный ключ и пару сертификатов OpenSSL с помощью одной команды:

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

  • openssl: это базовый инструмент командной строки для создания и управления сертификатами OpenSSL, ключами и другими файлами.
  • req: данная субкоманда указывает, что мы хотим использовать управление запросами подписи сертификатов X.509 (CSR). X.509 — это стандарт инфраструктуры открытых ключей, используемый SSL и TLS для управления ключами и сертификатами. Вы хотим создать новый сертификат X.509, и поэтому используем эту субкоманду.
  • -x509: это дополнительно изменяет предыдущую субкоманду, сообщая утилите, что мы хотим создать самоподписанный сертификат, а не сгенерировать запрос на подпись сертификата, как обычно происходит.
  • -nodes: этот параметр указывает OpenSSL пропустить опцию защиты сертификата с помощью пароля. Для чтения этого файла при запуске сервера без вмешательства пользователя нам потребуется Apache. Кодовая фраза может предотвратить это, поскольку нам придется вводить ее после каждого перезапуска.
  • -days 365: данный параметр устанавливает срок, в течение которого сертификат будет считаться действительным. Здесь мы устанавливаем срок действия в один год.
  • -newkey rsa:2048: указывает, что мы хотим генерировать новый сертификат и новый ключ одновременно. Мы не создали требуемый ключ для подписи сертификата на предыдущем шаге, и поэтому нам нужно создать его вместе с сертификатом. Часть rsa:2048 указывает, что мы создаем ключ RSA длиной 2048 бит.
  • -keyout: эта строка указывает OpenSSL, где мы разместим создаваемый закрытый ключ.
  • -out: данный параметр указывает OpenSSL, куда поместить создаваемый сертификат.

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

Укажите подходящие ответы. Самая важная строка — это строка, где запрашивается обычное имя (т. е. FQDN сервера или ВАШЕ имя) . Вам нужно ввести доменное имя, связанное с вашим сервером или, что более вероятно, публичный IP-адрес вашего сервера.

Читайте также:  Linux архиваторы командной строки

В целом диалоги выглядят примерно так:

Оба созданных вами файла будут помещены в соответствующие подкаталоги в каталоге /etc/ssl .

Шаг 2 — Настройка Apache для использования SSL

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

Внесем несколько небольших изменений в нашу конфигурацию:

  1. Создадим сниппет конфигурации, чтобы задать надежные параметры SSL по умолчанию.
  2. Мы изменим входящий в комплект файл виртуального хоста SSL Apache, чтобы он указывал на сгенерированные нами сертификаты SSL.
  3. (Рекомендуется) Мы изменим незашифрованный файл виртуального хоста, чтобы он автоматически перенаправлял запросы на шифрованный виртуальный хост.

После завершения настройки мы получим защищенную конфигурацию SSL.

Создание сниппета конфигурации Apache с надежными настройками шифрования

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

Создайте новый сниппет в каталоге /etc/apache2/conf-available . Мы назовем файл ssl-params.conf , чтобы сделать его назначение очевидным:

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

Рекомендованные настройки на вышеуказанном сайте обеспечивают высокий уровень безопасности. Иногда это достигается за счет совместимости клиентских систем. Если вам требуется поддержка старых версий клиентов, вы можете использовать альтернативный список, нажав на странице ссылку «Да, мне нужны настройки шифрования для устаревшего / старого программного обеспечения». Этот список можно заменить для копируемых ниже элементов.

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

Для наших целей мы скопируем предоставленные настройки полностью. Мы внесем только одно небольшое изменение. Мы отключим заголовок Strict-Transport-Security (HSTS).

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

Вставьте конфигурацию в открытый нами файл ssl-params.conf :

Сохраните файл и закройте его после завершения.

Изменение файла виртуального хоста Apache SSL по умолчанию

Теперь изменим /etc/apache2/sites-available/sl.conf , используемый по умолчанию файл виртуального хоста Apache SSL. Если вы используете другой файл серверных блоков, используйте имя этого файла в приведенных ниже командах.

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

Теперь откройте файл виртуального хоста SSL для внесения изменений:

С удалением большинства комментариев содержание файла виртуального хоста по умолчанию должно выглядеть примерно так:

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

После внесения изменений ваш серверный блок должен выглядеть примерно так:

Сохраните файл и закройте его после завершения.

(Рекомендуется) Изменение файла хоста HTTP для перенаправления на HTTPS

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

Чтобы изменить файл нешифрованного виртуального хоста для перенаправления всего трафика для шифрования SSL, мы можем открыть файл /etc/apache2/sites-available/000-default.conf :

Внутри файла в блоках конфигурации VirtualHost нам нужно добавить директиву Redirect , которая должна направлять весь трафик на версию сайта с шифрованием SSL:

Читайте также:  Какие обновления нужно удалить для windows 10

Сохраните файл и закройте его после завершения.

Шаг 3 — Настройка брандмауэра

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

Мы можем просмотреть доступные профили с помощью следующей команды:

Список должен выглядеть примерно так:

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

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

Чтобы разрешить дополнительный трафик HTTPS, мы разрешим профиль «Apache Full» и удалим избыточный профиль «Apache»:

Теперь ваш статус должен выглядеть примерно так:

Шаг 4 — Активация изменений в Apache

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

Мы можем активровать mod_ssl , модуль Apache SSL, и модуль mod_headers , необходимый для некоторых настроек нашего сниппета SSL, с помощью команды a2enmod :

Теперь мы можем активировать виртуальный хост SSL с помощью команды a2ensite :

Также нам нужно будет активировать файл ssl-params.conf для считывания заданных значений:

Мы активировали наш сайт и все необходимые модули. Теперь нам нужно проверить наши файлы на наличие ошибок в синтаксисе. Для этого можно ввести следующую команду:

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

Первая строка — это сообщение о том, что директива ServerName не задана глобально. Если вы хотите избавиться от этого сообщения, вы можете задать для ServerName доменное имя вашего сервера или IP-адрес в каталоге /etc/apache2/apache2.conf . Это необязательно, потому что данное сообщение не наносит никакого вреда.

Если в результатах есть сообщение Syntax OK , в вашей конфигурации нет синтаксических ошибок. Мы можем безопасно перезапустить Apache для внесения изменений:

Шаг 5 — Тестирование шифрования

Теперь мы готовы протестировать наш сервер SSL.

Откройте браузер и введите https:// и доменное имя или IP-адрес вашего сервера в адресную панель:

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

Такое предупреждение нормально, и его следует ожидать. Сертификат нам нужен только для шифрования, а не для подтверждения подлинности нашего хоста третьей стороной. Нажмите «Дополнительно», а затем нажмите на указанную ссылку, чтобы перейти к своему хосту:

Теперь должен открыться ваш сайт. Если вы посмотрите в адресную строку браузера, вы увидите символ замка со знаком «x». В данном случае это означает, что сертификат не удается проверить. Ваше соединение все равно шифруется.

Если вы настроили Apache для перенаправления HTTP на HTTPS, вы можете проверить правильность перенаправления функций:

Если при этом появляется такой же значок, перенаправление работает правильно.

Шаг 6 – Переключение на постоянное перенаправление

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

Откройте файл конфигурации серверного блока еще раз:

Найдите добавленную нами строку Redirect . Добавьте в эту строку атрибут permanent , который изменяет тип перенаправления с временного перенаправления 302 на постоянное перенаправление 301:

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

Проверьте конфигурацию на ошибки синтаксиса:

Когда вы будете готовы, перезапустите Apache, чтобы сделать перенаправление постоянным:

Заключение

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

Источник

Оцените статью