Mkcert: валидные HTTPS-сертификаты для localhost / Блог компании GlobalSign / Хабр

Mkcert: валидные HTTPS-сертификаты для localhost / Блог компании GlobalSign / Хабр Сертификаты

Что такое ssl-сертификат и для чего он нужен

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

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

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

Если пользователь попадает на сайт без SSL, то видит вот такую ужасную картину (с Google):

Аналогично с Яндекса:

В адресной строке все не менее печально.

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

Соответственно дело за малым — получить сертификат и установить его на сайт. Получить SSL  можно бесплатно и платно.

Что проверяется в таких случаях?


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

  1. Наличие организации в международных желтых страницах — проверяется не всеми центрами сертифации
  2. Наличие в whois домена названия вашей организации — а вот это уже проверят обязательно, и если такое название там не указано от вас скорей всего затребуют гарантийное письмо, в котором нужно указать, что домен действительно принадлежит организации, иногда могут затребовать подтверждение от регистратора
  3. Свидетельство о государственной регистрации — требуют все реже, чаще сейчас производится проверка через специальные компании, которые производят проверку существования организации по своим каналам. Например для Украины вас могут проверить по базе ЕДРПОУ
  4. Счет от телефонной компании, в которой содержится название вашей организации и ваш номер телефона, указанный в заказе — таким образом проверяется валидность вашего телефона. Требуют все реже.
  5. Проверочный звонок — все чаще правильность телефона проверяют осуществляя звонок, на номер телефона, указанный вами в заказе. При звонке спросят сотрудника, указанного в административном контакте. Не у всех центров сертификации есть русскоговорящие сотрудники, поэтому предупредите человека, который отвечает на телефон, что возможен звонок от англоязычной компании.

Введение:

Потребовалось мне тут как-то написать небольшой API, в котором необходимо было помимо обычных запросов принимать запросы с «высокой степенью секретности».

Не я первый с этим столкнулся и мир давно уже использует для таких вещей

Поскольку на моём сервере используется nginx, то был установлен модуль SSLГугл не выдал ни одного работоспособного howto, но информация в сети есть по частям.

Итак, пошаговое руководство по настройке nginx на авторизацию клиентов через SSL-сертификаты.

Внимание! В статье для примера используются самоподписанные сертификаты!

Перед стартом создадим папку в конфиге nginx, где будут плоды наших трудов:

cd /path/to/nginx/config/
mkdir ssl && cd ssl

ZeroSSL

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

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

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

основные возможности

  • Срок действия сертификата 90 дней
  • Управление сертификатами ACME
  • Быстрая проверка
  • Поддерживает подстановочные сертификаты

Давайте зашифруем

Возможно, самый известный на рынке провайдер бесплатного SSL – Let’s Encrypt. Хотя у него не обязательно есть «лучшие» бесплатные SSL-сертификаты, у него прочные партнерские отношения со многими хостинговыми компаниями. Это привело к повсеместной доступности сертификатов Let’s Encrypt.

В отличие от некоторых поставщиков бесплатных сертификатов SSL, которые следуют модели freemium, Let’s Encrypt действительно предлагает сертификаты с нулевой стоимостью. Это некоммерческая организация и пользуется спонсорской поддержкой (в основном корпоративной), присутствуя на рынке с 2021 года.

Управление сертификатами Let’s Encrypt также автоматизировано благодаря возможностям интеграции с веб-серверами. Это сертификаты проверки домена (DV) на основе TLS, признанные безопасными. Сервис также со временем улучшался, увеличивая совместимость с максимально возможным количеством устройств.

основные возможности

  • RSA-подписанный с 4096-битными ключами
  • Легко использовать
  • ACMEv2 и подстановочные знаки поддерживаются
  • Доступны отчеты о прозрачности

1 Подготовка CA

Создадим конфигnano ca.config

со следующим содержимым:

[ ca ]
default_ca = CA_CLIENT # При подписи сертификатов # использовать секцию CA_CLIENT

[ CA_CLIENT ]
dir = ./db # Каталог для служебных файлов
certs = $dir/certs # Каталог для сертификатов
new_certs_dir = $dir/newcerts # Каталог для новых сертификатов

database = $dir/index.txt # Файл с базой данных подписанных сертификатов
serial = $dir/serial # Файл содержащий серийный номер сертификата (в шестнадцатеричном формате)
certificate = ./ca.crt # Файл сертификата CA
private_key = ./ca.key # Файл закрытого ключа CA

default_days = 365 # Срок действия подписываемого сертификата
default_crl_days = 7 # Срок действия CRL
default_md = md5 # Алгоритм подписи

policy = policy_anything # Название секции с описанием политики в отношении данных сертификата

[ policy_anything ]
countryName = optional # Поля optional - не обязательны, supplied - обязательны
stateOrProvinceName = optional
localityName = optional
organizationName = optional
organizationalUnitName = optional
commonName = optional
emailAddress = optional

Далее надо подготовить структуру каталогов и файлов, соответствующую описанной в конфигурационном файле

Как обновить настройки 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

Let’s encrypt

Проект создан в 2021 году, чтобы выдавать бесплатные SSL-сертификаты любому пользователю на 90 дней (затем их нужно обновлять). Основные плюсы SSL Let’s Encrypt в том, что защита распространяется на IDN-домены и поддомены сайта. К недостаткам можно отнести поддержку далеко не всех OC и старых браузеров, также сложности в плане совместимости с некоторыми устройствами.

Про сертификаты:  Онлайн CSR Генератор – запрос на выпуск SSL-сертификата

При этом наиболее существенным минусом будет отсутствие гарантии сохранности данных сайта и печати доверия (картинка с логотипом удостоверяющего центра, которая подтверждает, что сайт проверен). Также у Let’s Encrypt нет страхования деятельности, то есть в случае проблем этот удостоверяющий центр ограничится лишь извинениями.

Ssl на хостинге beget

Для установки защищенного протокола на хостинге Beget перейдите в раздел “Домены и поддомены”, после чего нажмите на кнопку “Управление SSL-сертификатами”. Она будет напротив нужного домена.

Во всплывающем окошке вы можете выбрать параметры установки для домена.

Здесь для установки доступен Let`s Encrypt. Данный центр сертификации предоставляет свои услуги абсолютно бесплатно. Вы можете воспользоваться им или любым другим. Для доступа к настройке сертификата нужно использовать две соседние вкладки.

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

Проблемы могут возникнуть в том случае, если домен размещен на сторонних (не бегетовских) NS-серверах. Тогда вам вручную придется создавать A-запись в DNS вашего домена.

Где взять ssl-сертификат?

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

Сейчас популярен вариант от Let`s Encrypt. Они распространяются бесплатно, и многие хостеры поддерживают возможность быстрой установки и подключения.

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

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

Приведу вам список самых популярных сервисов, где вы сможете купить SSL:

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

Загрузка необходимых файлов на веб-сервер

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

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

Зачем нужен ssl-сертификат?

Я уже описывал что такое SSL в одном из материалов на iklife. Если говорить кратко, то ССЛ позволит вам использовать защищенный протокол шифрования данных на вашем сайте. Данные, передаваемые от сайта к клиенту (посетителю) будут надежно зашифрованы.

Реализация такого подхода возможна благодаря математически связанным ключам шифрования. От сервера (веб-ресурса) к клиенту (компьютеру посетителя) информация передается с помощью трех ключей шифрования. Два из них – закрытые. Они есть и у сервера, и у клиента. Третий ключ – открытый, он используется обеими машинами.

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

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

Как установить бесплатный ssl-сертификат

Шаг 1. Откройте панель управления ISPmanager. Перейдите в раздел «WWW» → «SSL-сертификаты» и нажмите на иконку «Let’s Encrypt».

Шаг 2. В появившемся меню «SSL-сертификаты» укажите домен для установки сертификата. Основным условием выдачи сертификата является делегирование домена – по нему должен открываться сайт. Нажмите «Ok»

Шаг 3. На сайт с указанным доменом произойдёт автоматическая установка SSL-сертификата Let’s Encrypt. На этапе проверки сайта на него устанавливается самоподписанный сертификат. Когда процесс выпуска завершиться, в меню «SSL-сертификаты» тип изменится с «Самоподписанный» на «Существующий».

Шаг 4. Бесплатный SSL-сертификат для сайта установлен. Теперь ресурс защищен полноценным сертификатом Let’s Encrypt. Об этом сигнализирует значок зелёного замка в адресной строке. Срок действия сертификата продлевается автоматически.

Как устроен ssl-сертификат

SSL (англ. Secure Sockets Layer переводится как “слой защищенных подключений”) – это криптографический протокол, который создан для безопасного обмена и хранения информации на сайтах. 

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

Цифровой сертификат содержит следующую информацию:

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

Эта информация позволяет браузеру клиента:1. Проверить достоверность сертификата.2. Установить, что он был выпущен доверенной организацией специально для конкретного домена.3. Сделать вывод, что устанавливаемое с сервером соединение – безопасное.

Как это работает

Полное описание процесса доступно по

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

Смысл программного набора Automated Certificate Management Environment (ACME) (написан на Python) в том, чтобы автоматизировать генерацию и установку сертификата в Linux-окружении.

Существует неофициальный Windows-клиент с открытыми исходными кодами, который может генерировать и устанавливать сертификаты на Windows IIS и Amazon Web Services, но у нас была задача получить ключи и установить их вручную. Предлагаю любому желающему написать статью по работе с ним.

Какие виды ssl-сертификатов есть и кто их выдаёт?

Есть специальные центры сертификации или как ещё называют — удостоверяющие центры (УЦ). Вы могли встречать названия таких УЦ: Symantec, Comodo, GlobalSign, Thawte, GeoTrust, DigiCert. Они подтверждают подлинность ключей шифрования с помощью сертификатов электронной подписи.

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

Например, при выборе сертификата Cloudflare учтите, что он выдаётся сразу на 50 сайтов. Тем самым сертификат будет защищать не только ваш домен, но и ещё несколько чужих, что несёт за собой риски безопасности. Также у Cloudflare нет печати доверия. Если говорить о недостатках LetsEncrypt, то сюда можно отнести поддержку далеко не всех браузеров, отсутствие гарантии сохранности данных сайта и печати доверия.

Про сертификаты:  Цикл программирование

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

Итак, существует несколько типов SSL-сертификатов по источнику подписи и типу проверки данных.

  • Самоподписанные. Сертификат подписывается самим сервером. Его может сгенерировать любой пользователь самостоятельно. По сути, он бесполезен, потому что доверять ему будет только компьютер, на котором был сгенерирован такой сертификат. Большинство браузеров при посещении сайта с таким сертификатом выдаст предупреждение, что соединение не защищено.
  • Подписанные доверенным центром сертификации (валидные). Речь о тех самых авторитетных УЦ выше. Сертификат корректно отображается во всех браузерах. Данные сертификата проверены и подтверждены в сертифицирующем центре.

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

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

  • DV (Domain Validation) — базовый уровень сертификата, который обеспечивает только шифрование данных, но не подтверждает существование организации. Такие бюджетные сертификаты подойдут физическим и юридическим лицам.
  • OV (Organization Validation) — обеспечивает не только шифрование данных, но и подтверждает существование организации. Такие сертификаты доступны только для юридических лиц.
  • EV (Extended Validation) — это эффективное решение с самым высоким классом защиты, которое активно применяется в онлайн-бизнесе. Для оформления требуется пройти процедуру расширенной проверки, подтвердить законность организации и право собственности на домен.

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

  • WildCard — защищает соединение с доменом и всеми его поддоменами.
  • SAN — защищает домены по списку, указанному при получении SSL-сертификата.

Какой ssl-сертификат выбрать?

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

Например, если вы просто хотите уберечь пользователей вашего веб-сайта от навязчивых предупреждений браузера о посещении непроверенного сайта, будет достаточно за несколько минут получить простой DV (Domain Validation) сертификат. Если же вы используете свою интернет-площадку для операций, требующих повышенного уровня безопасности данных компании и клиентов — стоит задуматься об EV (Extended Validation) сертификате.

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

  • насколько SSL совместим с основными браузерами;
  • на каком уровне происходит защита данных пользователей;
  • насколько масштабная проверка организации проводится;
  • есть ли печать доверия.

Конфиденциальность

Конфиденциальность представляет собой приватность — так и есть, она защищает информацию от чтения посторонними лицами. Обычно этот процесс предусматривает перевод информации из читаемой формы (в том числе аудио и видео), которая называется

открытый текст

, в зашифрованную, нечитаемую форму, которая называется

шифротекст

. Этот процесс именуется

шифрованием

. Обратный процесс — превращение нечитаемого шифротекста обратно в читаемый открытый текст — называется

расшифровкой

. Для шифрования и расшифровки информации существует много методов —

шифровальных функций

(или

алгоритмов

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

  1. Какой алгоритм (шифровальную функцию) использовать в коммуникации.
  2. Какие параметры, пароли или правила (то есть секрет) будут использоваться с выбранным методом.

Есть два основных метода шифрования:

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

Mkcert: валидные HTTPS-сертификаты для localhost / Блог компании GlobalSign / Хабр
Симметричное шифрование (см. большую версию)

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

Итак, как это работает? Предположим, что у нас есть две стороны, которые желают безопасно общаться друг с другом — Алиса и Боб (в каждом учебнике всегда используются такие имена вымышленных персонажей, в справочниках по безопасности и прочих, мы уважаем эту традицию).

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

Если Боб хочет отправить сообщение Алисе, он должен раздобыть её публичный ключ, зашифровать открытый текст и отправить ей шифротекст. Она затем использует свой секретный ключ для расшифровки.

Mkcert: валидные HTTPS-сертификаты для localhost / Блог компании GlobalSign / Хабр
Асимметричное шифрование (см. большую версию)

Когда мы используем симметричное, а когда асимметричное шифрование?

Асимметричное шифрование используется для обмена секретом между клиентом и сервером. В реальной жизни нам обычно не нужна двусторонняя асимметричная коммуникация — достаточно, если одна из сторон (назовём её сервер для простоты) владеет набором ключей, так что она может получать зашифрованные сообщения.

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

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

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

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

Наборы шифров

Выбор набора шифров для использования — это компромисс между совместимостью и безопасностью:

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

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

Mozilla SSL Configuration Generator — очень полезный и крайне рекомендуемый справочник, какие криптографические методы использовать на сервере. Мы позже будем использовать его в реальных серверных конфигурациях.

О самоподписанных сертификатах

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

Про сертификаты:  Самоподписные сертификаты кровавого энтерпрайза против вашего лампового CI/CD / Хабр

Данное руководство предполагает наличие у пользователя root-привилегий. Чтобы получить информацию о данных правах и их установке, читайте разделы 3 и 4 руководства «Начальная настройка сервера Ubuntu 12.04». 

Кроме того, на VPS должен быть установлен и запущен nginx. Чтобы установить nginx, используйте:

sudo apt-get install nginx

Плюсы и минусы бесплатного ssl-сертификата от let’s encrypt

Стоит ли устанавливать бесплатный сертификат или лучше купить платный — разбираем достоинства и недостатки:

Плюсы Let’s Encrypt:

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

Минусы:

  • не каждый хостинг поддерживает автоматический выпуск и обновление сертификата;
  • сложная установка в ручном режиме;
  • клиент для автоматического обновления получает разрешение на изменение конфигурации сервера (при ручной установке на VDS, виртуальных хостингов это не касается). С одной стороны, мы записали это в плюсы, а с другой стороны, из-за неправильных настроек может пострадать весь сайт;
  • короткий срок действия. Чаще всего SSL от Let’s Encrypt выпускается на 90 дней, реже на год. То есть каждые 90 дней нужно следить, не слетел ли сертификат во время автоматического обновления или перевыпускать его вручную. Если забыть о сроках, сайт на время может оказаться без сертификата и это повлияет на доверие к нему со стороны пользователей, а также на позицию в выдаче поисковиков;
  • могут возникнуть проблемы при установке на виртуальный хостинг (а это обычно самый дешевый хостинг);
  • у сертификата есть проблема совместимости с разными устройствами, ОС и операционными системами. Например, сертификат не работает на мобильных устройствах с версией прошивки ниже Android 2.3.6;
  • нет гарантий. Let’s Encrypt не несет ответственности за использование своих сертификатов. Если пользователь потеряет деньги на сайте с бесплатным сертификатом, например, в результате взлома, он не сможет их вернуть. Коммерческие центры сертификации возмещают убытки в зависимости от типа SSL-сертификата;
  • нет поддержки клиентов — только техническая документация на сайте, которая может показаться сложной для новичков;
  • бесплатные сертификаты менее функциональны, чем платные аналоги. Например, SSL Let’s Encrypt не выпускает сертификаты с зеленой строкой или проверкой организации, то есть, не подходит серьезным компаниям.

Как видите, минусов немало и есть над чем подумать. Стоит ли рисковать или лучше купить платный сертификат на год и забыть о нем до очередного продления?

По какому принципу работает ssl сертификат?

Итак для того, чтобы получить SSL сертификат самое первое, что нужно сделать, это сформировать специальный запрос на выпуск сертификата, так называемый (Certificate Signing Request). При формировании этого запроса вам будет задан ряд вопросов, для уточнения деталей о вашем домене и вашей компании. После завершения ваш веб сервер создаст 2 типа криптографических ключей — приватный ключ и публичный ключ.

Публичный ключ не является секретным и он помещается в запрос CSR.Вот пример такого запроса:—–BEGIN CERTIFICATE REQUEST—–MIIC3zCCAccCAQAwgZkxCzAJBgNVBAYTAlVBMQ0wCwYDVQQIEwRLaWV2MQ0wCwYDVQQHEwRLaWV2MRQwEgYDVQQKEwtIb3N0QXV0b21hdDEQMA4GA1UECxMHaG9zdGluZzEmMCQGCSqGSIb3DQEJARYXc3VwcG9ydEBob3N0YXV0b21hdC5jb20xHDAaBgNVBAMTE3d3dy5ob3N0YXV0b21hdC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDTg7iUv/iX SyZl74GcUVFHjFC5IqlTNEzWgLWrsSmxGxlGzXkUKidNyXWa0O3ayJHOiv1BSX1l672tTqeHxhGuM6F7l5FTRWUyFHUxSU2Kmci6vR6fw5ccgWOMMNdMg7V5bMOD8tfI74oBkVE7hV95Ds3c594u7kMLvHR xui2S3z2JJQEwChmflIojGnSCO/iv64RL9vjZ5B4jAWJwrruIXO5ILTdis41Z1nNIx3bBqkif0H/G4eO5WF6fFb7etm8M d8ebkqEztRAVdhXvTGBZ4Mt2DOV/bV4e/ffmQJxffTYEqWg8wb465GdAJcLhhiSaHgqRzrprKns7QSGjdAgMBAAGgADANBgkqhkiG9w0BAQUFAAOCAQEAuCfJKehyjt7N1IDv44dd V61MIqlDhna0LCXH1uT7R9H8mdlnuk8yevEcCRIkrnWAlA9GT3VkOY3Il4WTGg3wmtq6WAgLkVXQnhIpGDdYAflpAVeMKil8Z46BGIhKQGngL2PjWdhMVLlRTB/01nVSKSEk2jhO8 7yLOY1MoGIvwAEF4CL1lAjov8U4XGNfQldSWT1o8z9sDeGsGSf5DAXpcccx0gCyk90HFJxhbm/vTxjJgchUFro/0goVpBcredpKxtkwBMuCzeSyDnkQft0eLtZ9b9Q4 ZNDWsPPKxo/zWHm6Pa/4F4o2QKvPCPx9x4fm /xHqkhkR79LxJ EHzQ==—–END CERTIFICATE REQUEST—–

Данные которые содержатся в этом ключе можно легко проверить с помощью сервисов CSR Decoder. Как пример: CSR Decoder 1 или CSR Decoder 2. Второй сервис выдает больше информации о CSR и проверяет ее на валидность, поле Signature в результатах проверки.

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

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

Самоподписанные сертификаты генерируются владельцем сервера и домена самостоятельно. Подходит только для владельцев  виртуальных и выделенных серверов под управлением Linux. 

Самоподписанные сертификаты:

Но такие сертификаты могут:

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

Для генерации SSL-сертификата из командной строки используйте команду:

# openssl req -x509 -nodes -newkey rsa:2048 -days 365 -keyout /home/ssl/my_key.key -out /home/ssl/my_cert.crt

Будут запрошены:

  • пароль для файла с сертификатом;
  • данные о владельце сертификата (страна, город, название организации).

Самый главный параметр, который попросит ввести программа OpenSSL – это Common Name – адрес домена, для которого используется сертификат.

После выполнения данной команды на сервере в каталоге /home/ssl будут сгенерированы файлы сертификата: публичный ключ – в файле my_cert.crt и приватный ключ – в файле my_key.key.

Типы ключей


Сертификаты Elliptic Curve Cryptography (

ECC

) быстрее обрабатываются и используют меньше CPU, чем сертификаты RSA, что особенно важно для мобильных клиентов. Однако некоторые сервисы, такие как Amazon, CloudFront и Heroku на момент написания этой статьи пока не поддерживают сертификаты ECC.

256-битная длина ключа для ECC считается достаточной.

Сертификаты Rivest Shamir Adleman (RSA) более медленные, но совместимы с большим разнообразием старых серверов. Ключи RSA больше по размеру, так что 2048-битный ключ RSA считается минимально допустимым. Сертификаты RSA с ключами 4096 бит и больше могут ухудшать производительность — к тому же, скорее всего, они подписаны 2048-битным ключом посредника, что по большей части подрывает дополнительную защиту!

Вы могли заметить расплывчатость заявлений, сделанных выше, и отсутствие каких-либо чисел. То, что может нагрузить один сервер, не нагрузит другой сервер. Лучший способ определить влияние на производительность — это проверить загрузку на своём собственном сервере, с реальным веб-сайтом и реальными посетителями. И даже это изменится со временем.

Установка ssl в ispmanager

Чтобы установить ССЛ в ISPmanager 4, вам нужно перейти в панель управления и в соответствующий раздел. Он имеет название SSL-сертификаты.

В правом углу найдите кнопку “Создать”, после чего перед вашими глазами появится такое окно.

Нужно ввести все необходимые данные вручную. Поле “Имя сертификата” задается произвольно. Все остальное нужно предоставить по требованию. Выбираем “существующий” тип, и далее “указать вручную” в поле “Использовать ключ”.

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

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

Как только SSL будет установлен, мы должны перейти в раздел “WWW домен” и поставить там вот такую галочку.

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

В ISPmanager 5 этот процесс мало чем отличается, тем не менее, я считаю необходимым описать и его.

Перейдите в одноименный раздел, который находится в “WWW”. Я думаю, вы сразу заметите его.

Далее вам нужно кликнуть по кнопке “Создать” и перейти непосредственно к настройке.

Сервис предложит вам выбрать тип сертификата – выбираем “Существующий”.

Нам необходимо будет заполнить все поля (имя, ключи и сам сертификат). Их выдает компания, у которой был куплен сертификат.

На завершающем этапе нам необходимо перейти в раздел WWW-домены и найти нужный из списка. Кликаем по домену два раза, после чего переходим к параметрам.

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

Готово! Теперь ваш сайт будет использовать защищенное соединение.

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