Как заставить браузер доверять самоподписанному сертификату
В этом разделе описывается порядок добавления самоподписанных сертификатов, созданных при установке Kaspersky CyberTrace, в доверенное хранилище. Таким образом устраняются предупреждения о безопасности, выдаваемые браузерами.
Информация в этом разделе применима к ситуации, когда пользователь работает с веб-интерфейсом CyberTrace Web с того же сервера, на котором запущен веб-интерфейс CyberTrace. Если элемент GUISettings > HTTPServer > ConnectionString в конфигурационном файле Feed Service ссылается на внешний интерфейс, веб-интерфейс CyberTrace не будет считаться доверенным, поскольку самоподписанный сертификат может использоваться только с адресами https://127.0.0.1 и https://localhost .
Чтобы избежать потенциальных угроз безопасности, рекомендуется использовать доверенный сертификат, подписанный центром сертификации (ЦС).
Придание самоподписанному сертификату доверенного статуса в браузере (веб-интерфейс CyberTrace открывается в Internet Explorer, установленном в системе Windows)
Придание сертификату доверенного статуса в браузере требует последовательного выполнения следующих трех процедуры:
Чтобы сохранить сертификат в локальный файл, выполните следующие действия:
-
Откройте адрес https://127.0.0.1 или https://localhost в Internet Explorer.
Браузер сообщает о проблеме с сертификатом безопасности веб-сайта.

Сообщение об ошибке сертификата
В адресной строке появляется сообщение Ошибка сертификата .
Откроется окно Untrusted Certificate .

Окно Untrusted Certificate
Откроется окно Certificate с информацией о сертификате CyberTrace.

Запустится мастер экспорта сертификата.

Мастер экспорта сертификатов
При экспорте сертификата используйте настройки мастера по умолчанию.
Чтобы запустить процесс импорта сертификата через Microsoft Management Console (MMC), выполните следующие действия:
-
Из поля Search перейдите в поле Run и введите mmc .
Теперь можно запустить MMC от имени администратора.


Выбор Add/Remove Snap-in
Откроется окно Add or Remove Snap-ins .

Добавление оснастки сертификатов
Откроется окно Certificates snap-in .

Выберите Computer account
В открывшемся окне Select Computer нажмите на кнопку Finish .

Выбор Local computer

Запустится мастер импорта сертификата.
Чтобы добавить сохраненный сертификат в хранилище доверенных корневых центров сертификации, выполните следующие действия:
-
На странице приветствия мастера нажмите на кнопку Next .

Мастер импорта сертификатов

Импорт ранее сохраненного сертификата

Выбор хранилища сертификатов

Завершение импорта сертификата
Проблема безопасности (недоверенный сертификат) устранена, как показано на рисунке ниже.

Придание самоподписанному сертификату доверенного статуса в браузере (веб-интерфейс CyberTrace открывается в Google Chrome, установленном в системе Windows)
Чтобы сделать самоподписанный сертификат для веб-интерфейса CyberTrace доверенным при использовании Google Chrome, выполните следующие действия:
-
Откройте адрес https://127.0.0.1 или https://localhost в Google Chrome.
В адресной строке отображается предупреждение о том, что соединение с сайтом небезопасно.
Откроется окно со сведениями о безопасности веб-сайта.

Сведения о безопасности
Запустится мастер экспорта сертификата.

Мастер экспорта сертификатов
При экспорте сертификата используйте настройки мастера по умолчанию.
Придание самоподписанному сертификату доверенного статуса в браузере (веб-интерфейс CyberTrace открывается в Mozilla Firefox)
Добавление веб-интерфейса CyberTrace в список доверенных веб-адресов Mozilla Firefox выполняется, чтобы в браузере не отображались предупреждения о сертификате.
Придание самоподписанному сертификату доверенного статуса в браузере (веб-интерфейс CyberTrace открывается в браузере для Linux)
Процедуры импорта сертификата как доверенного с помощью браузера (в системах Linux) различаются в зависимости от используемого браузера и дистрибутива Linux. Однако в этих процедурах есть общие шаги: открытие формы настроек браузера и использование этой формы для импорта сертификата в хранилище.
Чтобы вручную придать самоподписанному сертификату статус доверенного для браузера в системе Linux, выполните следующие действия:
-
Создайте каталог /usr/local/share/ca-certificates/ , если он не существует на сервере:
cp <полный путь к сертификату> /usr/local/share/ca-certificates/
Если у пакет ca-certificates не установлен, установите его с помощью используемого в системе менеджера пакетов.
Удаление сертификата из списка доверенных
После перенастройки или удаления CyberTrace старые сертификаты больше не используются CyberTrace. Их можно удалить из списка доверенных сертификатов.
Чтобы удалить сертификат из списка доверенных сертификатов (в Windows), выполните следующие действия:
-
Откройте консоль управления сертификатами и выполните следующую команду:

Консоль управления сертификатами
В системе Linux процедура удаления выполняется аналогично добавлению сертификата: откройте список доверенных сертификатов и удалите ненужные.
Браузер не принимает самоподписанный сертификат
Я пишу HTTPS Proxy (наподобие Fiddler, только для конкретного домена). Соответственно, для просмотра зашифрованного трафика нужно организовать передачу браузеру сертификата с совпадающим именем нужного домена. Сертификат предварительно установлен как доверенный, т.к. является самоподписанным (через Мастер импорта сертификатов Windows; просмотреть можно в настройках сертификатов браузера в списках Личные и Доверенные корневые центры сертификации). Однако, при попытке соединения браузер даёт ошибку ERR_CERT_COMMON_NAME_INVALID и пишет что соединение не защищено.
В адресной строке указано, что сертификат не действителен, но если там же открыть настройки переданного сертификата, то в окне свойств пишется, что сертификат действителен. Хм.
P.S.: Использую Google Chrome
ERR_CERT_COMMON_NAME_INVALID говорит о том, что сертификат вы сделали не для того домена или сайта, к которому пытаетесь подключиться.
Chrome последних версий не смотрит на commonName , а смотрит только на subjectAltName . Если вы при создании сертификата через конфиг не указываете SAN, то вы получаете такую ошибку.
How to trust a self-signed SSL certificate in IE11 and Edge
![]()
There are times where you need to enable HTTPS during local development. It may be because of some API demanding you to use HTTPS to ensure data is transmitted securely (Flickr is a good example). Or maybe you want your local environment to match production environment a little more (where you should definitely use HTTPS). That’s when you need to use a SSL certificate on your local machine.
For local purposes, we usually do not need the real certificate we are using on our production site. A self-signed certificate should do the job as well. Creation of a self-signed certificate is not difficult as there are multiple ways to do this (see here for example).
Chances are you need to account for Windows users, and therefore for Microsoft web browsers (the Microsoft Edge browser available since Windows 10 and Internet Explorer 11). You might wonder why your self-signed certificate is not working properly in Edge and Internet Explorer while they work perfectly fine on other web browsers like Google Chrome and Mozilla Firefox.
Microsoft Edge and Internet Explorer do not trust self-signed certificates by default for security reasons which is a good thing. Any web browser should do this (and probably all modern browsers available do this) as the risk is that the client is currently talking to a fake server (see this article for a more detailed explanation).
But when you need to trust your self-signed certificate you created because you need it for local development, the process is fairly simple in browsers like Chrome or Firefox. However, trusting them in Edge or Internet Explorer is not so trivial. In this article, I will show you how to get your self-signed SSL certificate working on both Edge and IE11. Keep in mind we are not talking about the new Edge browser which is based on Chromium and therefore more resembles Google Chrome.
Do this process only for certificates you created yourself! And do not set your browser to accept all certificates by default!
How to trust your self-signed certificate in Edge and IE11
To trust your self-signed certificate in Edge and Internet Explorer, you need to perform the following steps in Internet Explorer even if you only need to support the Edge browser as I could not get it to work from inside Edge.
- Browse to your page (e.g. https://localhost:44300) in Internet Explorer which should use your self-signed SSL certificate. You should be greeted by an error message saying your certificate is not trustworthy.
- Click “Continue to this website”.
- Click on “Certificate error” in the address bar, and then click “View certificates”.
- Click “Install Certificate”.
- Click “Place all certificates in the following store”, and then click “Browse”. Do not rely on the preselected option to automatically select the certificate store as this will not work!
- Inside the dialog box, click “Trusted Root Certification Authorities”, and then click “OK”.
- Finish the dialog.
- When you get a security warning, click “Yes” to trust the certificate.
- Reload your page. The certificate should be working fine now.
Conclusion
These should be all the steps to get your self-signed SSL certificate working in both Microsoft Edge and Internet Explorer. The process is slightly more difficult to perform than in other web browsers but still manageable and you only need to do it once for this certificate to make it work in both Edge and Internet Explorer. Do you know any other way to get self-signed certificates working in Internet Explorer or Microsoft Edge? Let me know in the comments.
Как выпустить самоподписанный SSL сертификат и заставить ваш браузер доверять ему

Все крупные сайты давно перешли на протокол https. Тенденция продолжается, и многие наши клиенты хотят, чтобы их сайт работал по защищенному протоколу. А если разрабатывается backend для мобильного приложения, то https обязателен. Например, Apple требует, чтобы обмен данными сервера с приложением велся по безопасному протоколу. Это требование введено с конца 2016 года.
На production нет проблем с сертификатами. Обычно хостинг провайдер предоставляет удобный интерфейс для подключения сертификата. Выпуск сертификата тоже дело не сложное. Но во время работы над проектом каждый разработчик должен позаботиться о сертификате сам.
В этой статье я расскажу, как выпустить самоподписанный SSL сертификат и заставить браузер доверять ему.
Чтобы выпустить сертификат для вашего локального домена, понадобится корневой сертификат. На его основе будут выпускаться все остальные сертификаты. Да, для каждого нового top level домена нужно выпускать свой сертификат. Получить корневой сертификат достаточно просто.
Сначала сформируем закрытый ключ:
Затем сам сертификат:
Нужно будет ввести страну, город, компанию и т.д. В результате получаем два файла: rootCA.key и rootCA.pem
Переходим к главному, выпуск самоподписанного сертификата. Так же как и в случае с корневым, это две команды. Но параметров у команд будет значительно больше. И нам понадобится вспомогательный конфигурационный файл. Поэтому оформим все это в виде bash скрипта create_certificate_for_domain.sh
Первый параметр обязателен, выведем небольшую инструкцию для пользователя.
Создадим новый приватный ключ, если он не существует или будем использовать существующий:
Запросим у пользователя название домена. Добавим возможность задания “общего имени” (оно используется при формировании сертификата):
Чтобы не отвечать на вопросы в интерактивном режиме, сформируем строку с ответами. И зададим время действия сертификата:
В переменной SUBJECT перечислены все те же вопросы, который задавались при создании корневого сертификата (страна, город, компания и т.д). Все значение, кроме CN можно поменять на свое усмотрение.
Сформируем csr файл (Certificate Signing Request) на основе ключа. Подробнее о файле запроса сертификата можно почитать в этой статье.
Формируем файл сертификата. Для этого нам понадобится вспомогательный файл с настройками. В этот файл мы запишем домены, для которых будет валиден сертификат и некоторые другие настройки. Назовем его v3.ext. Обращаю ваше внимание, что это отдельный файл, а не часть bash скрипта.
Да, верно, наш сертификат будет валидным для основного домена, а также для всех поддоменов. Сохраняем указанные выше строки в файл v3.ext
Возвращаемся в наш bash скрипт. На основе вспомогательного файла v3.ext создаем временный файл с указанием нашего домена:
Переименовываем сертификат и удаляем временный файл:
Скрипт готов. Запускаем его:
Получаем два файла: mysite.localhost.crt и device.key
Теперь нужно указать web серверу пути к этим файлам. На примере nginx это будет выглядеть так:

Запускаем браузер, открываем https://mysite.localhost и видим:

Браузер не доверяет этому сертификату. Как быть?
Нужно отметить выпущенный нами сертификат как Trusted. На Linux (Ubuntu и, наверное, остальных Debian-based дистрибутивах) это можно сделать через сам браузер. В Mac OS X это можно сделать через приложение Keychain Access. Запускаем приложение и перетаскиваем в окно файл mysite.localhost.crt. Затем открываем добавленный файл и выбираем Always Trust:

Обновляем страницу в браузере и:

Успех! Браузер доверяет нашему сертификату.
Сертификатом можно поделиться с другими разработчиками, чтобы они добавили его к себе. А если вы используете Docker, то сертификат можно сохранить там. Именно так это реализовано на всех наших проектах.
Делитесь в комментариях, используете ли вы https для локальной разработки?