Как сделать самозаверенный сертификат для сайта

Добавил пользователь Cypher
Обновлено: 05.10.2024

В предыдущей статье было рассмотрен пример выпуска SSL сертификата с использованием OpenSSL. Но способ хоть и позволяет выпустить самоподписанный сертификат и использовать его на своем веб-сервере, но он не будет считаться валидным для современных браузеров (Chrome, Edge, Firefox и т.д.).

При каких условиях самоподписанный сертификат станет валидным и подтвержденным?

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

  1. Необходимо установить на клиентскую машину сертификат корневого центра сертификации
  2. В сертификате должен быть задан Common Name
  3. В альтернативных именах сертификата должны быть указаны все доменные имена, ip-адреса серверов, на которые планируется установка данного сертификата
  4. Должны использоваться современные алгоритмы шифрования, например, для подписи sha-256, для симметричного шифрования aes256, для ассиметричного шифрования RSA с длиной ключа не менее 2048 бит. Могут использоваться и другие алгоритмы. Но перечисленная связка на момент написания статьи работает на всех браузерах.

Что нужно для выпуска самоподписанного сертификата?

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

ustanovka-ssl-sertifikata

Приветствую вас, друзья! 🙂

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

Информация по установке SSL сертификата будет представлена в виде пошаговой инструкции, при составлении которой я воспользовался первым способом и своим хостингом TheHost, к панели управления которого (используется ISPManager) у меня есть доступ.

TheHost позволяет как устанавливать SSL сертификаты, приобретённые у него, так и выполнять подключение SSL сертификата, приобретённого у других поставщиков.

Также в панели управления хостингом есть возможность сделать бесплатный SSL сертификат от Let’s Encrypt и самоподписанный с последующей их установкой.

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

Как установить SSL сертификат на сайт: этапы

Надеюсь, на данный момент вы уже определились с тем, что такое SSL сертификат и какой он бывает.

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

  1. Генерация SSL сертификата. Заключается в создании самоподписанного сертификата на сервере самостоятельно либо в формировании запроса на выпуск данного документа в центр сертификации (CA).
  2. Установка SSL сертификата на хостинг.
  3. Подключение SSL сертификата к сайту.

Итак, рассмотрим каждый этап подробнее, начиная с создания SSL сертификата.

Создание SSL сертификата

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

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

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

Как заказать SSL сертификата на хостинге?

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

Во-первых, сгенерировать SSL сертификат данного типа сможет даже ребёнок: не нужно скачивать и запускать какие-то утилиты, а также вникать в тонкости того, как установить SSL сертификат на сервер.

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

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

Официальные регистраторы, насколько я знаю, таким покупателей не балуют.

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

После проделанных действий на экране появится диалоговое окно, которое выглядит так:

generaciya-ssl-sertifikata-na-hostinge

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

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

В зависимости от того, какой тариф вы выберете, у вас могут присутствовать или отсутствовать некоторые из приведённых далее шагов. Имейте ввиду!

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

kak-sdelat-ssl-sertifikat-dlya-sajta

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

Запрос должен быть в виде файла с вашими зашифрованными персональными данными с расширением csr.

Если вы его уже сгенерировали (а о том, как это сделать прямо в ISPManager админки TheHost, я расскажу вам дальше), то на данном шаге просто введите его содержимое.

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

При этом данное диалоговое окно примет следующий вид:

kak-sozdat-ssl-sertifikat

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

sozdanie-sertifikata-ssl

Рекомендуется его сохранить в файлике на компьютере для большей безопасности, чтобы никто не мог получить к нему доступ при взломе TheHost, например 🙂

Либо же можно сохранить его в системе, чтобы не вводить на дальнейших шагах, чем я и воспользовался.

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

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

kak-ustanovit-ssl-sertifikat-na-sajt

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

sgenerirovat-ssl-sertifikat

Следующим этапом является ввод email, на который будет высылаться ссылка для подтверждения генерации SSL сертификата:

ustanovka-ssl-sertifikata-na-hosting

Если у вас нет готового email, присутствующего среди вариантов выпадающего списка, то заведите его.

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

Что вполне справедливо, т.к. TheHost сам сертификат не выпускает, а заказывает его у официальных сертификационных центров.

Ну, и на финальном этапе от вас потребуется выбрать способ оплаты и срок продления SSL сертификата, на который он будет автоматически выпускаться при истечении своей действительности:

kak-podklyuchit-ssl-sertifikat-k-sajtu

Нажимаем на Готово и всё, что теперь остаётся — это дождаться запроса подтверждения выпуска SSL сертификата из центра сертификации и самого сертификата.

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

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

Итак, как сделать заказ генерации SSL сертификата у официальных центров сертификации, я вам показал.

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

Для этого заходим в ISPManager по ссылке из письма, пришедшего при регистрации на thehost.ua, либо в панель управления сервером можно попасть прямо из кабинета пользователя следующим способом:

kak-poluchit-besplatnyj-ssl-sertifikat-letsencrypt

sozdat-ssl-sertifikat-samomu-besplatno

Сертификат появится в списке существующих SSL сертификатов.

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

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

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

Подключение SSL сертификата, оформленного в другом месте

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

Сделать это можно в том же диалоговом окне, которое использовалось для создания самоподписанного SSL сертификата.

kak-ustanovit-ssl-sertifikat-na-server

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

Создание запроса SSL сертификата у CA

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

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

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

Наиболее распространённой является OpenSSL, которая доступна как под Linux, так и под Windows благодаря CygWin или использованию других эмуляторов консоли Linux (та же самая командная строка Git поддерживает Linux команды или утилита PuTTY).

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

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

Есть такой и у TheHost, который доступен в данном окне.

kak-sozdat-zapros-ssl-sertifikata

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

Открывайте их обычным текстовым редактором и копируйте код запросов при оформлении SSL сертификатов как через TheHost, так и у других регистраторов.

Как получить бесплатный SSL сертификат Lets Encrypt?

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

Речь идёт о генерации бесплатного SSL сертификата LetsEncrypt, создать который можно за считанные секунды.

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

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

sozdanie-besplatnogo-ssl-sertifikata-letsencrypt

nastrojka-ssl-sertifikata

Как видите, для всех LetsEncrypt SSL сертификатов TheHost указывает абсолютно идентичную информацию, упрощая и ускоряя процедуру их выпуска.

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

Отсутствие персональных данных владельца в нём может серьёзно насторожить их, а для некоторых может даже послужить сигналом отказа от использования данного сайта.

Установка SSL сертификата на хостинг

После этого на экране появляется следующее диалоговое окно:

dobavit-ssl-sertifikat-na-sajt

Вот и всё. SSL сертификат на сайт установлен. Сами могли убедиться, насколько это просто и быстро благодаря TheHost и ISPManager, в частности.

Да, пусть он выглядит неказисто, но со своими задачами справляется на отлично 🙂

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

Установив галочку в данном поле, в файл конфигурации веб сервера Nginx на хостинге добавится следующий код:

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

Проверка правильности установки SSL сертификата

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

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

А это, надо сказать, неплохая мотивация пользоваться первым типом хостеров, где от пользователя не требуется много времени и знаний.

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

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

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

Логотип Powershell

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

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

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

Чтобы создать самозаверяющий сертификат с помощью PowerShell, вы можете использовать New-SelfSignedCertificate Командлет. Этот командлет включен в PKI модуль.

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

Давайте идти вперед и создать регулярный SSLServerAuthentication сертификат. Это тот, который обычно используется для защиты сайтов с шифрованием SSL. Вы можете увидеть пример этого ниже. В этом примере сертификат хранится в Cert:LocalMachineMy Certificate Store ,

Если все прошло хорошо, теперь у вас должен быть новый сертификат! Вы заметите, что выходные данные возвращают субъект, но субъект отображает только первый элемент, переданный ему через DnsName параметр. Это потому, что второй URL становится частью альтернативного списка субъекта.

New-SelfSignedCertificate: CertEnroll::CX509Enrollment::_CreateRequest: Access denied. 0x80090010 (-2146893808 NTE_PERM)

Как вы можете сказать с Access denied , у вас еще нет разрешения на запуск этого. *

Поиск информации в нашем сертификате

Давайте удостоверимся, что сертификат был создан так, как мы ожидали. Чтобы найти информацию о конкретном сертификате с PowerShell, вы можете использовать Get-ChildItem Командлет, как вы могли бы перечислить файлы в каталоге.

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

Сертификат подписи кода

Если вы работаете в PowerShell, вы узнаете о политика исполнения, Если у вас установлена ​​политика выполнения AllSigned тогда вам нужно будет подписать каждый скрипт, который работает в вашей системе. Чтобы создать сертификат, сделать это довольно просто!

Сертификат защиты документов

Возможно, раньше вы с этим не сталкивались, но PowerShell с API защиты данных может шифровать файлы в вашей системе с помощью сертификата защиты документов. Используя New-SelfSignedCertificate Командлет, мы можем легко сделать сертификат для шифрования ваших документов.

С этим типом сертификата теперь вы можете использовать сертификат, созданный для шифрования и дешифрования содержимого с помощью команд PowerShell, таких как Protect-CMSMessage и UnProtect-CMSMessage ,

Подобное шифрование / дешифрование становится полезным, если вам нужно передать зашифрованные данные, поскольку вы можете использовать этот сертификат в другой системе для дешифрования данных. Если вы полагаетесь на стандартный API защиты данных (DPAPI), встроенный в Windows, вы не сможете расшифровать данные в других системах или для других пользователей.

Резюме

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

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

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

Создать SSL сертификат самостоятельно 1

Создать SSL сертификат: пошаговая инструкция

Самостоятельно создать SSL сертификат можно, выполнив 4 простых шага:

Привязать SSL сертификат к серверу

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

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

Читайте также: