Как сделать сертификат trusted

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

В статье мы рассмотрим, как установить SSL-сертификат на веб-сервер Nginx.

Сервис настройки NGINX

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

Как установить SSL-сертификат на Nginx

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

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

Рассмотрим, как выполняется установка и настройка Nginx SSL:

Объедините три сертификата (сам SSL-сертификат, корневой и промежуточный сертификаты) в один файл. Для этого создайте на ПК новый текстовый документ с именем your_domain.crt (your_domain — доменное имя сайта, который вы хотите защитить). Создать его можно при помощи блокнота или другого текстового редактора. Поочередно скопируйте и вставьте в созданный документ каждый сертификат. После вставки всех сертификатов файл должен иметь вид:

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

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

/etc/ssl/your_domain.crt — путь до созданного файла с тремя сертификатами,

/etc/ssl/your_domain.key — путь до файла с приватным ключом.

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

Добавьте в секцию server<>, которую вы создали на шаге 4, следующую строку:

Добавьте в конфигурационном файле в секции server<> строки:

Пытаюсь следовать различным инструкциям по созданию самозаверяющего сертификата для использования с localhost. Большинство инструкций похоже для IIS, но я пытаюсь использовать Nodejs / Express. Ни один из них не работает должным образом, потому что пока сертификат установлен, ему не доверяют. вот что я пробовал, что не удалось:

Может ли кто-нибудь предложить рабочий процесс, который может это сделать? Я могу установить сертификат, но не могу доверять сертификату ни в chrome (v32), ни в IE (v10).

РЕДАКТИРОВАТЬ: в комментариях было высказано предположение, что проблема не в доверенном корне сертификата. Я установил сертификат через IE, но ему все еще не доверяют.

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

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

Ответы выше были частичными. Я потратил столько времени на то, чтобы это работало, это безумие. На заметку для себя в будущем: вот что вам нужно сделать:

Я работаю над Windows 10 с Chrome 65. Firefox ведет себя хорошо - просто подтвердите localhost как исключение безопасности, и он будет работать. В Chrome нет:

Шаг 1. В вашем бэкэнде создайте папку с именем security . мы будем работать внутри него.

Шаг 2. Создайте файл конфигурации запроса req.cnf со следующим содержимым (кредит принадлежит: @Anshul )

req.cnf:

Объяснение этого поля находится здесь .

Шаг 3. Перейдите в папку безопасности в терминале и введите следующую команду:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout cert.key -out cert.pem -config req.cnf -sha256

Шаг 4. Затем вне security папки в экспресс-приложении сделайте что-то вроде этого: (кредит принадлежит @Diego Mello)

server.js:

Нам необходимо зарегистрировать наш самозаверяющий сертификат в качестве доверенного центра сертификации ЦС в хранилище сертификатов Chrome / Windows.(Chrome также сохраняет это в окнах,)

Шаг 7. перейдите в панель Details, нажмите Copy File, затем, когда появится мастер экспорта сертификатов, нажмите Next, как показано ниже:

Шаг 9. Откройте chrome://settings/ , вставив его в поле url. Внизу нажмите Advanced / Advanced Options , а затем прокрутите вниз, чтобы найти Manage Certificates .

выберите управление сертификатами

Перейдите на панель

Мы импортируем localhost.cer сертификат, который мы только что завершили на шаге 8.

подтвердить исключение безопасности

Если вы делаете это для адреса в сети, я обнаружил, что настройка DNS сертификата на имя хоста, например: DNS.1 = server.local Затем на подключающейся машине обновите файл HOSTS, чтобы указать IP-адрес сервера на имя хоста, например: 192.168.0.50 server.local Это будет разрешите совпадение сертификата и адреса и подтвердите сертификат.

Кратчайший путь. Протестировано на MacOS, но может работать аналогично в других ОС.

Drag image to your desktop and double click it -> Ничего не могу перетащить на рабочий стол, не перетаскивается .. О image чем конкретно вы говорите?

Вы можете попробовать openSSL для создания сертификатов. Взгляните на это .

Это нормально работает на моем локальном компьютере, а также на сервере, на котором я его развернул. Тот, который у меня есть на сервере, был куплен у goDaddy, но у localhost был самоподписанный сертификат.

Если кто-нибудь когда-либо обходил эту ошибку с помощью самоподписанного сертификата, просветите пожалуйста.

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

Значит, вы хотите, чтобы этому сертификату доверяли только на вашем локальном компьютере, а не в сети?

ссылка в верхней части ответа рекомендует 1024-битное шифрование 3DES, которое устарело. Лучше использовать openssl genrsa -out key.pem 2048 для лучшего ключа.

Как сгенерировать SSL-сертификат для localhost: ссылка

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

когда вас спросят "Общее имя" введите: localhost

Вот что у меня работает

В Windows Vista и Windows 7 Vista и Windows 7 используется контроль учетных записей пользователей (UAC), поэтому Блокнот необходимо запускать от имени администратора.

Нажмите Пуск -> Все программы -> Стандартные.

Щелкните правой кнопкой мыши Блокнот и выберите Запуск от имени администратора.

Когда откроется Блокнот, нажмите Файл -> Открыть.

В поле имени файла введите C: \ Windows \ System32 \ Drivers \ etc \ hosts

Закройте и перезапустите браузеры

На Mac или Linux:

Используйте ".YOURSITE.net" в качестве домена cookie (с точкой в начале) при создании cookiem, тогда он должен работать со всеми поддоменами.

2) создайте сертификат, используя этот localdev.url

СОВЕТ: Если у вас есть проблемы с созданием сертификатов в Windows, используйте вместо этого машину VirtualBox или Vmware.

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

Для Windows отлично работает консоль git bash, используя команды openssl отсюда . Просто нужно установить корневой сертификат, и вы можете создать несколько сертификатов для конкретного сайта, подписанных им, если хотите.

Mkcert от @FiloSottile делает этот процесс бесконечно проще:

  1. Установите mkcert , есть инструкция для macOS / Windows / Linux
  2. mkcert -install создать локальный ЦС
  3. mkcert localhost 127.0.0.1 ::1 для создания доверенного сертификата для localhost в текущем каталоге
  4. Вы используете узел (который не использует корневое хранилище системы), поэтому вам нужно явно указать CA в переменной среды, например: export NODE_EXTRA_CA_CERTS="$(mkcert -CAROOT)/rootCA.pem"
  5. Наконец, запустите свой экспресс-сервер, используя настройку, описанную в различных других ответах (например, ниже)
  6. бум. localhost купается в зелени.

Базовая настройка узла:

Отлично работает! При таком подходе нам не нужно регистрировать наш самозаверяющий сертификат в качестве доверенного центра сертификации CA в хранилище сертификатов Chrome / Windows. Как упоминалось в других ответах.

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

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

1. В списке услуг нажмите на сертификат.


2. Найдите статус рядом с названием сертификата:

Если статус услуги “Активная”, переходите к установке. Если услуга неактивна, активируйте сертификат.

Установка SSL на Nginx

Инструкция по установке SSL на Nginx подойдёт не только для сертификатов, купленных в 2DOMAINS, но и для сертификатов других провайдеров.

Чтобы установить и настроить SSL на Nginx:

1. В директории /etc/ssl/ создайте файл с названием domain.crt (вместо domain введите доменное имя) и откройте его в текстовом редакторе. Вставьте в файл содержимое сертификатов в следующем порядке: сертификат, промежуточный сертификат и корневой сертификат. Структура файла должна выглядеть так:

В файле не должно быть пустых строк.

Обратите внимание: если директория /etc/ssl/ отсутствует, создайте её при помощи команды:

sudo mkdir /etc/ssl/

2. В директории /etc/ssl/ создайте файл domain.key (domain — ваш домен). Откройте его в текстовом редакторе и вставьте в него приватный ключ. В файле приватного ключа не должно быть пустых строк.

3. Откройте файл конфигурации Nginx nginx.conf и измените виртуальный хост вашего сайта. Для этого добавьте в файл строки:

server <
listen 443 ssl;
server_name domain;
ssl_certificate /etc/ssl/domain.crt;
ssl_certificate_key /etc/ssl/domain.key;
>

Вместо domain укажите доменное имя вашего сайта и сохраните изменения в файле.

4. Примените изменения в конфигурационном файле:

sudo nginx -s reload

systemctl reload nginx

Готово, сертификат установлен.

Настройка Nginx SSL

Рассмотрим дополнительные настройки защищенного соединения:

  • С SSL-сертификатом сервер тратит больше ресурсов, чем без него. Вы можете оптимизировать работу веб-сервера Nginx при помощи кеша SSL-сессий. Для этого добавьте в конфигурационный файл строки:
  • Укажите протоколы TLS, с которыми будет работать сервер:

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

  • Повысьте приоритет серверных шифров над клиентскими:
  • Чтобы сократить время загрузки страниц, разрешите серверу прикреплять OCSP-ответы для проверки сертификата. Для этого создайте файл /etc/ssl/ca.crt и добавьте в него содержимое корневого сертификата. После этого откройте конфигурационный файл и добавьте строки:

После изменений, которые вы внесли, сохраните файл конфигурации. Затем примените новую конфигурации при помощи команд:

Существует большое количество методов установки ssl-сертификата, в этой статье осветим наиболее распространенные.

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

Подтверждение прав владения доменом

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

Возможны последующие проверки:

  • проверка организации;
  • расширенная проверка.

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

Txt запись в DNS

Вам будет предложено добавить запись типа TXT в DNS записи домена

валидация домена TXT запись

Рассмотрим, как это делается в isp manager

Во вкладке домены нужно выбрать доменные имена

isp manager доменные имена

Просмотреть NS записи домена

isp manager NS записи домена

Создать новую ресурсную запись

isp manager создание новой ресурсной записи

isp manager, выбор типа записи

TXT запись может появиться не сразу, обычно это происходит в течение часа.

Проверить DNS записи домена можно с помощью утилиты dig. Сервисов существует много, возьмем, например, этот.

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

проверка DNS-записей домена утилита dig

Cname запись в DNS

Нужно будет сделать то же самое, что и в предыдущем пункте, только выбрав тип записи CNAME.

Запись имеет вид:

добавить Cname запись

Подтверждение с помощью доменной почты

При выборе этого способа подтверждения на административную доменную (например, [email protected]ИМЯ ДОМЕНА, [email protected]ИМЯ ДОМЕНА) почту придет письмо от центра сертификации со ссылкой для подтверждения.

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

Файл на сервере

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

После подтверждения

В большинстве случаев вам на почту придет 3 файла (или они будут в личном кабинете регистратора ssl-сертификата).

Если файлы придут на почту, обязательно сохраните себе эти файлы! В случае утери нужно будет делать переиздание сертификата.

.key – Приватный ключ (Private Key)

.crt – файл сертификата, который мы вам выдали.

.ca-bundle – файл, содержащий корневые и промежуточные сертификаты в определенном порядке. Порядок:

  • Промежуточный сертификат 2
  • Промежуточный сертификат 1
  • Корневой сертификат

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

Установка сертификата через административную панель хостинга

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

Как правило, при переходе в этот пункт вам будет предложен выбор: установить существующий сертификат или же заказать(приобрести) новый сертификат.

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

Рассматривать установку будем на примере хостинга timeweb.

Необходимо в личном кабинете зайти в пункт меню ssl-сертификаты

timeweb Ssl-сертификаты

timeweb установить сертификат

Ввести данные сертификата в соответствующие поля

timeweb установка Ssl-сертификата

Установка Let’s Encrypt с помощью административной панели хостинга

timeweb Заказать сертификат

установка Let’s Encrypt timeweb

Установка сертификатов в ISP панели

В некоторых случаях для управления хостингом/сервером устанавливается ISP manager. Это панель управления веб-хостингом, позволяющая управлять программным обеспечением веб-сервера, сервером баз данных, почтовым сервером и другими.

Установка существующего сертификата в ISP manager

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

В меню isp manager выбрать пункт ssl-сертификаты

isp manager Ssl-сертификаты

isp manager создать ssl-сертификат

isp manager выбор типа сертификата

Заполнить соответствующие поля в isp manager

isp manager заполнение полей для ssl-сертификата

Важно! Необходимо заполнить все поля, чтобы в дальнейшем не возникло проблем. В случае некорректной установки ssl-сертификата Яндекс.Вебмастер пришлет уведомление об ошибке.

ошибка в Яндекс вебмастере, при некорректной установке Ssl-сертификата

О методе проверки корректности установки сертификата описано в конце статьи.

Установка Let’s Encrypt с помощью ISP manager

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

isp manager выбор Let’s Encrypt

Выбрать домен, на который будет установлен сертификат (если вам необходим Wildcard сертификат, нужно установить соответствующую галочку).

isp manager создание Let’s Encrypt

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

На главной странице сервиса будет поле check ssl, в нем нужно прописать адрес вашего сайта.

sslshopper.com проверка Ssl-сертификата

Если все правильно, вы увидите примерно такую картину:

sslshopper.com проверка Ssl-сертификата прошла успешно

Если сертификат не установлен, вы увидите ошибку:

sslshopper.com проверка SSL не установлен сертификат

В случае нарушения цепочки сертификатов всплывет такая ошибка:

sslshopper.com проверка SSL нарушение цепочки сертификатов

Заключение

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

Если у вас возникли проблемы с установкой или работоспособностью ssl-сертификата, обращайтесь к нам за помощью! А приобрести SSL-сертификат вы можете прямо сейчас по этой ссылке.

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