Создание SSL-сертификата веб-сервера Apace на Ubuntu 12.04 |

Создание SSL-сертификата веб-сервера Apace на Ubuntu 12.04 | Сертификаты

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

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

Введение

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

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

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

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

Чтобы получить более подходящий для производственной среды готовый сертификат, воспользуйтесь бесплатным центром сертификации Let’s Encrypt. Чтобы узнать, как загрузить и настроить сертификат Let’s Encrypt, воспользуйтесь нашим обучающим модулем «Защита Apache с помощью Let’s Encrypt в Ubuntu 20.04».

5: проверка автоматического обновления сертификата

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

Настройка

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

Про сертификаты:  ФОРМАТ SSL СЕРТИФИКАТА: КАК КОНВЕРТИРОВАТЬ СЕРТИФИКАТ В .PEM, .CER, .CRT, .DER, PKCS ИЛИ PFX? - Записная книжка инженера программиста

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

sudo apt-get install apache2

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

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

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

Для прохождения этого обучающего модуля вам потребуется следующее:

Затем установите пакет apache2:

Шаг #1: активация модуля ssl

Затем нужно активировать модуль SSL на сервере:

sudo a2enmod ssl

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

sudo service apache2 restart

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

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

sudo mkdir /etc/apache2/ssl

Шаг #3: создание самоподписанного ssl-сертификата

При «заказе» сертификата можно установить срок, в течение которого он должен оставаться действующим (число 365 в запросе можно поменять на любое другое). Мы создадим сертификат, который будет действителен в течение одного года:

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

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

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

Самое важное поле “Common Name” — здесь нужно вбить доменное имя сайта, если у него еще нет домена (или его использование не предполагается), можно вбить IP-адрес.

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

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

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

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

Шаг #5: активация нового виртуального хоста

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

sudo a2ensite default-ssl

После этого нужно перезагрузить Apache:

sudo service apache2 reload

Шаг 1 — активация mod_ssl

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

Про сертификаты:  Сертификация услуг | ФБУ Севастопольский ЦСМ

Активируйте mod_ssl с помощью команды a2enmod:

Перезапустите Apache для активации модуля:

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

Шаг 2 – создание сертификата ssl

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

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

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

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

Укажите подходящие ответы. Наиболее важная строка — это та, которая запрашивает Common Name. Вам нужно ввести имя хоста, которое вы будете использовать для доступа к серверу, или публичный IP-адрес сервера. Важно, чтобы значение в этом поле совпадало с вводимыми в адресную строку браузера данными для доступа к сайту, поскольку несоответствие приведет к дополнительным ошибкам безопасности.

Про сертификаты:  УЦ ФГБУ «ФКП Росреестра» - электронная подпись

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

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

Мы подготовили самоподписанный сертификат и ключ, и теперь нам нужно обновить конфигурацию Apache для их использования. В Ubuntu вы можете поместить новые файлы конфигурации Apache (они должны иметь расширение .conf) в каталог /etc/apache2/sites-available/, и они будут загружены при следующей перезагрузке или перезапуске процесса Apache.

Для этого обучающего модуля мы создадим новый файл с минимальной конфигурацией. Если вы уже настроили Apache <Virtualhost>, и вам просто нужно добавить SSL, вы можете просто скопировать строки конфигурации, начинающиеся с SSL, и переключить порт VirtualHost с 80 на 443. Мы займемся портом 80 на следующем шаге.)

Откройте новый файл в каталоге /etc/apache2/sites-available:

Вставьте в него следующую минимальную конфигурацию VirtualHost:

/etc/apache2/sites-available/your_domain_or_ip.conf

Обновите строку ServerName, указав предполагаемое имя для обращения к вашему серверу. Это может быть имя хоста, полное доменное имя или IP-адрес. Убедитесь, что выбранное имя соответствует параметру Common Name, выбранному при создании сертификата.

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

Создадим каталог DocumentRoot и поместим в него файл HTML для целей тестирования:

Откройте новый файл index.html в текстовом редакторе:

Вставьте в пустой файл следующее:

/var/www/your_domain_or_ip/index.html

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

Сохраните и закройте файл. После этого нам нужно активировать файл конфигурации с помощью инструмента a2ensite:

Затем проверим ошибки конфигурации:

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

Output

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message Syntax OK

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

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

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