Linux ssl certificate server

Как установить SSL-сертификат Let’s Encrypt для Ubuntu 20.04

Шифрование SSL / TLS является неотъемлемой частью сетевой инфраструктуры. Все web и почтовые сервера позволяют включить шифрование данных. В этой статье мы расскажем, как получить бесплатный SSL-сертификат Let’s Encrypt.

Как получить бесплатный сертификат Let’s Encrypt:

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

Шаг 1. Установка пакета «Let’s Encrypt»

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

Вместе с пакетом «Let’s Encrypt» эта команда также устанавливает утилиту «certbot.timer» для автоматического продления сертификата. Она проверяет действительность SSL-сертификатов в системе два раза в день и продлевает те, срок действия которых истекает в следующие 30 дней. Для проверки запуска утилиты введите:

Существуют разные конфигурации и условия получения сертификата. Далее рассмотрим некоторые из них.

Step 2 – Автономный сервер для получения SSL-сертификата «Let’s Encrypt»

Самый простой способ получить SSL-сертификат – использовать отдельную опцию в Certbot. Замените domain-name.com на свое доменное имя, выполните команду и следуйте инструкциям:

Параметр certonly означает, что сертификат будет получен только без установки на каком-либо web-сервере, standalone позволяет запускать собственный web-сервер для аутентификации, agree-tos – принятие ACME соглашения о подписке на сервер, являющемся предварительным условием, а preferred-challenges http – выполнение авторизации с использованием HTTP.

Step 3 – Автоматическая установка SSL-сертификата на web-серверах nginx и Apache

Certbot может автоматически устанавливать сертификат на web-серверы nginx и Apache. Для этого вам необходимо установить и выбрать подходящий дополнительный пакет для вашего сервера.

Читайте также:  Find what linux version

Источник

Генерация и использование SSL-сертификатов в Linux

В целях безопасности, в частности во избежание перехвата конфиденциальных, персональных или важных данных. Многие владельцы сайтов в сети защищают трафик с помощью SSL-сертификатов. Естественно, защите подлежит только тот трафик, который связан непосредственно с запросами и передачей данных с определённым адресом — адресом сайта. Системные администраторы, сотрудники техподдержки должны ориентироваться в вопросах, касающихся создания и внедрения SSL-сертификатов для хостов. Поскольку предоставляют соответствующие услуги. Для этих целей в системах Linux существует утилита openssl. Она является свободной реализацией методов защиты, протокола SSL, а также генерации сертификатов.

Как SSL-сертификат помогает защитить данные?

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

  • Пара ключей (открытый и закрытый) — для шифрования/расшифровки трафика;
  • Подпись открытого ключа. Гарантирующая, что он подлинный и обслуживает именно тот домен, для которого и был создан.

Обе эти составляющие и представляют собой то, что принято обозначать понятием SSL-сертификат. Подпись является гарантией, поскольку выдаётся авторитетным центрами сертификации. Это доступные всем онлайн-сервисы (достаточно воспользоваться любой поисковой системой), которым можно отправить свой ключ, заполнив соответствующую анкету. Далее сервис (центр сертификации) обрабатывает данные из анкеты и сам ключ и высылает уже подписанный ключ обратно его владельцу. Среди самых популярных на сегодняшний день центров сертификации являются такие как Comodo.
Важно заметить, что зашифрованный открытым ключом трафик возможно расшифровать только соответствующим ему закрытым ключом. В свою очередь подпись для открытого ключа от авторитетного цента говорит, что зашифрованный трафик пришёл от «своего» или подлинного узла и его можно принять в обработку, т. е. расшифровать закрытым ключом.

Общий порядок создания SSL-сертификата, ключи и подпись

Во время создания SSL-сертификата происходит последовательная обработка следующих видов ключей:

  • *.key – это сами ключи шифрования, открытий и/или закрытый;
  • *.csr – ключ, содержащий сформированный запрос для получения подписи сертификата от центра сертификации, а сам запрос — это открытый ключ и информация о домене и организации, связанной с ним;
  • *.crt, *.cer, *.pem – это, собственно, сам сертификат, подписанный центром сертификации по запросу из файла *.csr.
Читайте также:  Linux mint touchpad drivers

Для начала нужно создать закрытый ключ:

$ openssl genrsa -des3 -out server.key 2048

Здесь команда genrsa генерирует RSA-ключ, опция -des3 указывает алгоритм шифрования ключа. А опция -out указывает, что ключ должен быть получен в виде файла server.key. Число 2048 — это сложность шифрования. При выполнении этой команды пользователю будет предложено ввести пароль для шифрования. Поскольку указан его алгоритм опцией -des3. Если это личный ключ и его планируется использовать на сервере, который можно настроить в собственных целях, то естественно шифрование обязательно. Однако, многие серверы требуют закрытые ключи без шифрования (например хостинг-площадки, поскольку предоставляют универсальную услугу по заказу SSL-сертификатов). Поэтому перед генерацией закрытого ключа нужно определиться, как он будет использоваться.

Теперь нужно создать запрос на подпись — CSR-файл, который будет включать только что сгенерированный ключ server.key:

$ openssl req -new -key server.key -out server.csr

При выполнении этой команды пользователю необходимо ввести информацию о домене и организации. Причём наименование домена следует вводить точно, например, если идентификатор URL сайта https://mycompany.com, то ввести нужно mycompany.com. Для URL-идентификатора www.mycompany.com уже необходим отдельный сертификат.
Теперь файл server.csr со сформированным запросом на подпись можно отправить в выбранный центр сертификации.

Подписание SSL-сертификатов

Получить подписанный сертификат, когда имеется закрытый ключ и запрос на подпись можно несколькими способами: воспользоваться услугой авторитетных центров сертификации, отправив им запрос (CSR-файл) и получив в ответ готовый сертификат *.crt. Либо можно сделать сертификат самоподписанным. Т. е. подписать его тем же ключом, который использовался при создании файла CSR. Для этого следует выполнить команду:

$ openssl x509 -signkey server.key -in server.csr -req -days 365 -out server.crt

Здесь опция -days указывает количество дней, в течение которых выпускаемый сертификат server.crt будет действителен. В данном случае на протяжении одного года.
Также можно создать самоподписанный сертификат из имеющегося закрытого ключа без использования CSR-файла. Но в этом случае нужно вводить информацию CSR-запроса:

$ openssl req -key server.key -new -x509 -days 365 -out server.crt

Параметр -x509 задаёт формат генерируемого сертификата. Он является самым распространённым и используется в большинстве случаев. Опция -new позволяет запрашивать информацию для запроса у пользователя.

Читайте также:  Linux ubuntu пользователь root

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

Использование SSL-сертификатов для домена

Для использования сертификата доменом, для которого он был создан, необходимо соответствующим образом настроить виртуальный хост этого домена. Для начала нужно сохранить файлы *.crt и *.key где-нибудь, где доступ к ним может получить только их владелец. Например в ~/ssl/certs/ нужно поместить файл server.crt, в ~/ssl/private/ — файл server.key. Далее, в конфигурационном файле виртуального хоста нужно определить следующие директивы:

SSLCertificateFile /home/john/ssl/certs/server.crt SSLCertificateKeyFile /home/john/ssl/private/server.key

Важно заметить, что для SSL-соединений домена должен быть отдельный конфигурационный файл (или просто отдельная конфигурация в одном файле) виртуального хоста для него. Это необходимо, поскольку обычные HTTP-соединения обрабатываются по порту 80, а HTTPS (SSL) — по 443. Это отдельные конфигурации одного виртуального хоста (хотя это не совсем верное определение). Также для Apache должен быть включен модуль SSL. Типичная конфигурация может выглядеть следующим образом:

  ServerName www.mycompany.com ServerAdmin webmaster@www.mycompany.com DocumentRoot /var/www/htdocs/mycompany ErrorLog logs/www.mycompany.com-ssl-error_log CustomLog logs/www.mycompany.com-ssl-access_log combined ScriptAlias /cgi-bin/ /var/www/cgi-bin/mycompany SSLEngine on SSLCertificateFile /home/john/ssl/certs/server.crt SSLCertificateKeyFile /home/john/ssl/private/server.key 

Как подключить ssl сертификата в nginx читайте в этой статье.

Заключение

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Похожие записи:

Источник

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