Содержание

Как выпустить самоподписанный SSL сертификат и заставить ваш браузер доверять ему

Все крупные сайты давно перешли на протокол https. Тенденция продолжается, и многие наши клиенты хотят, чтобы их сайт работал по защищенному протоколу. А если разрабатывается backend для мобильного приложения, то https обязателен. Например, Apple требует, чтобы обмен данными сервера с приложением велся по безопасному протоколу. Это требование введено с конца 2016 года.

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

Чтобы выпустить сертификат для вашего локального домена, понадобится корневой сертификат. На его основе будут выпускаться все остальные сертификаты. Да, для каждого нового top level домена нужно выпускать свой сертификат. Получить корневой сертификат достаточно просто.

Сначала сформируем закрытый ключ:

openssl genrsa -out rootCA.key 2048

Затем сам сертификат:

openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem

Нужно будет ввести

страну

,

город

,

компанию

и т.д. В результате получаем два файла:

rootCA.key

и

rootCA.pem

Переходим к главному, выпуск самоподписанного сертификата. Так же как и в случае с корневым, это две команды. Но параметров у команд будет значительно больше. И нам понадобится вспомогательный конфигурационный файл. Поэтому оформим все это в виде bash скрипта create_certificate_for_domain.sh

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

if [ -z "$1" ]
then
  echo "Please supply a subdomain to create a certificate for";
  echo "e.g. mysite.localhost"
  exit;
fi

Создадим новый приватный ключ, если он не существует или будем использовать существующий:

if [ -f device.key ]; then
  KEY_OPT="-key"
else
  KEY_OPT="-keyout"
fi

Запросим у пользователя название домена. Добавим возможность задания “общего имени” (оно используется при формировании сертификата):

DOMAIN=$1
COMMON_NAME=${2:-$1}

Чтобы не отвечать на вопросы в интерактивном режиме, сформируем строку с ответами. И зададим время действия сертификата:

SUBJECT="/C=CA/ST=None/L=NB/O=None/CN=$COMMON_NAME"
NUM_OF_DAYS=999

В переменной SUBJECT перечислены все те же вопросы, который задавались при создании корневого сертификата (

страна

,

город

,

компания

и т.д). Все значение, кроме CN можно поменять на свое усмотрение.

Сформируем csr файл (Certificate Signing Request) на основе ключа. Подробнее о файле запроса сертификата можно почитать в этой статье.

openssl req -new -newkey rsa:2048 -sha256 -nodes $KEY_OPT device.key -subj "$SUBJECT" -out device.csr

Формируем файл сертификата

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

v3.ext

. Обращаю ваше внимание, что это отдельный файл, а не часть bash скрипта.

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = %%DOMAIN%%
DNS.2 = *.%%DOMAIN%%

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

v3.ext

Возвращаемся в наш bash скрипт. На основе вспомогательного файла

v3.ext создаем временный файл с указанием нашего домена:

cat v3.ext | sed s/%%DOMAIN%%/$COMMON_NAME/g > /tmp/__v3.ext

Выпускаем сертификат:

openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days $NUM_OF_DAYS -sha256 -extfile /tmp/__v3.ext

Переименовываем сертификат и удаляем временный файл:

mv device.csr $DOMAIN.csr
cp device.crt $DOMAIN.crt

# remove temp file
rm -f device.crt;

Скрипт готов. Запускаем его:

./create_certificate_for_domain.sh mysite.localhost

Получаем два файла:

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 для локальной разработки?

Максим Ковтун,
Руководитель отдела разработки

Создание SSL-сертификата веб-сервера Apace на Ubuntu 12.04

Что означает красный цвет

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

Немного о SSL-сертификатах

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

Настройка

Для того, чтобы сгенерировать сертификат, вам необходимо обладать root-правами на вашем сервере (в системе 1cloud такие права пользователи получают по-умолчанию). Кроме того, необходимо установить веб-сервер Apache (о том, как это сделать написано в нашей статье «Как установить LAMP-стек (Linux, Apache, MySqL, PHP) на сервере с Ubuntu»).

Если Apache еще не установлен на сервере, это можно сделать с помощью специальной команды:

sudo apt-get install apache2

Шаг #1: Активация модуля SSL

Затем нужно активировать модуль SSL на сервере:

sudo a2enmod ssl

И перезапустить Apache, чтобы изменения вступили в силу:

sudo service apache2 restart

Шаг #2: Создание новой директории

Нужно создать новую директорию (то есть папку), где будут хранится ключ сервера и сам сертификат:

sudo mkdir /etc/apache2/ssl

Шаг #3: Создание самоподписанного SSL-сертификата

При «заказе» сертификата можно установить срок, в течение которого он должен оставаться действующим (число 365 в запросе можно поменять на любое другое). Мы создадим сертификат, который будет действителен в течение одного года:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt

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

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

Самое важное поле “Common Name” — здесь нужно вбить доменное имя сайта, если у него еще нет домена (или его использование не предполагается), можно вбить IP-адрес.


You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:RU
State or Province Name (full name) [Some-State]:Moscow Region
Locality Name (eg, city) []:Moscow
Organization Name (eg, company) [Internet Widgits Pty Ltd]:OOO Romashka
Organizational Unit Name (eg, section) []:Sales
Common Name (e.g. server FQDN or YOUR name) []:example.com                  
Email Address []:[email protected]

Шаг #4: Установка сертификата

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

nano /etc/apache2/sites-available/default-ssl

Здесь в секции, начинающейся со слов <virtualhost _default_:443=»»>, нужно дописать строку с именем сервера (ServerName):

ServerName example.com:443

Слово example.com надо заменить на доменное имя сайта или IP-адрес сервера (значение должно совпадать с тем, что вы внесли в поле CommonName при создании SSL-сертификата). Также нужно найти поиском три строки и убедиться что в них указаны значение, как в примере ниже:

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key

Затем нужно сохранить изменения и выйти из файла.

Шаг #5: Активация нового виртуального хоста

Прежде чем активировать сайт на 443 порте, нужно включить соответствующий виртуальный хост:

sudo a2ensite default-ssl

После этого нужно перезагрузить Apache:

sudo service apache2 reload

После этого нужно вбить в браузер https://адрес_сайта, чтобы увидеть новый сертификат.

 

P. S. Другие инструкции:

Поделиться в соцсетях:

Спасибо за Вашу оценку! К сожалению, проголосовать не получилось. Попробуйте позже

ru

191014 Санкт-Петербург ул. Кирочная, 9

+7(812)313-88-33 235 70 1cloud ltd 2018-12-07 Создание SSL-сертификата для Apache на Ubuntu 12.04

191014 Санкт-Петербург ул. Кирочная, 9

+7(812)313-88-33 235 70 1cloud ltd 2018-12-07 Создание SSL-сертификата для Apache на Ubuntu 12.04 600 auto

Создание сертификата SSL | REG.RU

SSL-сертификат для сайта — что это такое и для чего он нужен? Установка HTTPS (TLS) сертификата помогает обеспечить защиту передаваемых данных. В этом случае соединение, устанавливаемое между браузером и сайтом, происходит по протоколу HTTPS. Данные, которые передаются по протоколу HTTPS, кодируются криптографическим протоколом, тем самым обеспечивается их защита. Чтобы стать обладателем SSL-сертификата, достаточно выбрать наиболее подходящий для вас, указать доменное имя, для которого он будет установлен, и, следуя инструкциям автоматической системы заказа, осуществить покупку.

Компания REG.RU предлагает своим клиентам самые популярные SSL-сертификаты от ведущих компаний мира, таких как Globalsign, Symantec (VeriSign), GeoTrust, Thawte, Comodo и TrustWave. Только у нас можно подобрать и приобрести именно такой, который будет идеально подходить для вашего бизнеса: простой, средний уровень, мультидоменный, EV с расширенной проверкой и другие. Почти для всех из них доступна цифровая или электронная «Печать доверия», которая динамически отображает информацию о надёжности и защищённости вашего сайта.

Что такое SSL-сертификат?

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

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

SSL-сертификат позволяет пользователю просматривать следующую подтверждённую удостоверяющим центром информацию:

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

Все про OpenSSL за 5 минут

OpenSSL – это криптографическая библиотека, которая является open source реализацией двух протоколов: Secure Sockets Layer (SSL) и Transport Layer Security (TLS). Данная библиотека имеет инструменты, предназначенные для генерации приватных ключей RSA и Certificate Signing Requests (CSR-запросов), управления сертификатами и выполнения кодирования/декодирования. * / \ ( ) ?.,&.

Поля для заполнения будут следующими:

  • Country Name – ISO-кодстраны
  • State or Province Name – область, где была проведена официальная регистрация компании
  • Locality Name – город, где была проведена официальная регистрация компании
  • Organization Name – полное название организации (без сокращений)
  • Organizational Unit Name – название отдела организации
  • Common Name – полное доменное имя сервера

Сгенерировать CSR-запрос в OpenSSL можно при помощи специальной команды:

openssl req -key -new cert.key -out cert.csr

Имя домена, на который совершается запрос, указывается в Common Name. Поля «A challenge password» и «An optional company name» заполнять не нужно (просто жмем enter).

Команда для создания ключа:

openssl req -batch -new -noout -newkey rsa:2048 -nodes -keyout cert.key

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

Одновременное создание ключа и запроса с данными:

openssl req -batch -new -newkey rsa:2048 -nodes -keyout cert.key -subj ‘/C=RU/ST=Ivanovo/L=Ivanovo/O=Guru Project/OU=Research team/[email protected]/CN=primer.com’ -out cert.csr

Удалить пароль с ключа (требуется в том случае, когда сертификат устанавливается вручную в конфигурацию Apache; в противном случае он во время запуска будет просить вновь ввести пароль):

openssl rsa -in cert.key -out cert.key

после чего указываем пароль через консоль (либо -passin pass:tv0ip4ssw0rd, что не так безопасно, поскольку пароль помещается в .history)

Посмотреть информацию CSR:

openssl req -noout -text -in cert.csr

Получить данные сертификата (чтобы установить, кем он был выдан, к примеру):

openssl x509 -noout -text -in cert.crt

Выполнить проверку соответствия ключа сертификату:

openssl x509 -noout -modulus -in cert.crt | openssl md5 openssl rsa -noout -modulus -in cert.key | openssl md5

Два значения должны быть равнозначными.

Процесс установки SSL сертификата

Процесс установки сертификата осуществляется при помощи следующих шагов.

Скопируйте выданный вам сертификат в файл, расположенный на вашем сервере Apache

После выпуска SSL-сертификата, на почтовый адрес, который вы задали, поступит электронное письмо, которое будет содержать в себе ваш сертификат. Файл с сертификатом будет называться domain.crt. Открыв файл с SSL сертификатом в обычном текстовом редакторе, вы увидите следующее (примерно):

 ——BEGIN CERTIFICATE—— ASb-SdGSIk3DqvPAqCAMIACAQSxALBgkqddhgrtkiG9w0BBwGg&KLPmowggHXAh Ub7egest5u0M63v1Z2A/kFghj5CSqGSIb3DQBAs+klMF8xCzAnbijNByhTMd54vSA (…….) E+cFEGjgrHJgrA+eRP6XraWw8iiguUtfgrrcJgg4P6XVS4l39+l5aCEGGbauLP5W6 K99orhIhgQrlX2+KeDi+xBG2coigehIGFeQS/16S36ITcluHGY5EA+&A5ujbhgrYHS ——END CERTIFICATE——

Скопируйте данный сертификат туда же (в ту же директорию), где лежит ваш частный (приватный) ключ, назовем этот каталог /etc/ssl/crt/. В нашей ситуации приватный ключ — это private.key. Публичным ключом будет выступать domain.crt.

Задайте корневой и промежуточный сертификат

Очень важный пункт. Чтобы заслужить доверие браузеров и различных мобильных устройств к вашему SSL-сертификату, вам нужно будет задать сертификаты корневых и промежуточных ЦС (центров сертификации). Такие сертификаты обычно лежат вместе с файлом Вашего главного сертификата. Для Apache их надо объединить в ca_bundle.

Чтобы ссылка на данный файл была корректной, следует произвести следующее в необходимом разделе Virtual Host для вашего веб-сайта:

  1. Выполните копирование файла server.ca-bundle в каталог, в котором у вас находятся файлы сертификата и ключа (у нас это: /etc/ssl/crt/).
  2. Далее внесите новую строку в секцию SSL в файле httpd.conf. Если эта строка уже имеется, отредактируйте ее, чтобы она имела следующий вид: SSLCertificateChainFile /etc/ssl/crt/y_server.ca-bundle
  3. В том случае, если вы используете иное расположение и иные названия файлов, вам надо будет изменить путь и имена файлов. Раздел SSL в обновленном файле config теперь получит следующий вид:

<VirtualHost 293.169.10.25:443>

DocumentRoot /var/web/html3

ServerName www.leader_domain.com

SSLEngine on

SSLCertificateFile /etc/ssl3/cert/leader_domain.crt

SSLCertificateKeyFile /etc/ssl3/cert/leader_private.key

SSLCertificateChainFile /etc/ssl3/cert/leader_server.ca-bundle ***

</VirtualHost>

*** Для Apache 1.x используйте: SSLCACertificateFile /etc/ssl3/cert/leader_server.ca-bundle

  1. Сохраните файл config и проведите перезапуск Apache.

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

Уточнить длину запроса:

echo ‘(‘ `openssl req  -modulus -noout -in leader_cert.csr| cut -d’=’ -f2 | wc -c` ‘-1)*4’ | bc

Проверить состояние выдачи HTTPS:

openssl s_client -connect localhost:443 -state -debug GET / HTTP/1.0

Для почтового адреса:

openssl s_client -connect localhost:993 -showcerts

На ОС Windows (в IIS в частности) применяется PFX-контейнер для SSL-сертификата, его можно сделать из файлов ключа и самого сертификата командой:

openssl pkcs12 -inkey -export -in certificate.crt yourcertificate.key -out yourcertificate.pfx

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


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

Вы просматриваете данную страницу в защищенном режиме, и все видимые вам данные недоступны третьим лицам.

Чтобы связать сертификат с доменом или субдоменом, нужно сгенерировать запрос на создание SSL-сертификата. Этот запрос называется CSR, или Certificate Signing Request. Создание CSR — это создание файла, в котором находится фрагмент зашифрованных данных о компании и домене, на которые выдается сертификат. SSL будет выдан на домен, который указан в CSR, поэтому проверьте, что вы его правильно указали. Без создания CSR-запроса генерация SSL-сертификата невозможна.

Для чего нужен онлайн CSR-генератор:

1. Сгенерировать CSR запрос на выдачу SSL-сертификата (Certificate Signing Request, CSR).

2. Получить приватный 2048-битный RSA-ключ для установки на сервер.

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

Внимание!
Если вам нужен CSR или RSA для сертификата с защитой поддоменов (Wildcard SSL), введите название домена в поле «Доменное имя» в формате *.moydomen.com.

Как сгенерировать CSR-запрос для выпуска SSL-сертификата

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

Что и как указывать в полях:

Имя или название:
Доменное имя (Common Name) — домен или субдомен, на который будет установлен сертификат.
Организация (Organization) — название компании или ФИО человека, на которого оформляется сертификат.
Отдел (Organization Unit) — отдел, который покупает сертификат. Если вы не организация или у вас нет отдела, укажите IT.

Адрес компании или человека, на которого оформляется сертификат:
Город (Locality) — город. Пример: Moskva
Область/Штат (State) — область. Пример: Moskovskaya Oblast
Страна (Country) — страна в виде кода из двух символов. RU для России
Email — электронная почта административного контакта

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

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

Включение SSL на вашем веб-сервере—Руководства по установке (10.3 и 10.3.1)

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

Чтобы зашифровать сетевое соединение между ArcGIS Web Adaptor и Portal for ArcGIS необходимо использовать SSL на порту 443. Другие порты использовать нельзя. SSL позволяет защитить имена, пароли и другую важную информацию от дешифровки в канале связи между Web Adaptor и порталом. При использовании SSL подключение к веб-страницам и ресурсам осуществляется по протоколу HTTPS, а не HTTP.

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

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

Для создания SSL-соединения между Web Adaptor и порталом, веб-серверу требуется сертификат SSL. Сертификат SSL – это цифровой файл, содержащий информацию об удостоверении веб-сервера. Он также содержит метод шифрования, который используется при создании защищенного канала между веб-сервером и порталом. Сертификат SSL должен создаваться владельцем веб-сайта и иметь цифровую подпись. Существует три типа сертификатов – подписанные центром сертификации (CA), домена и самозаверяющийся – которые описываются ниже.

Сертификаты, подписанные центром сертификации (CA)

Сертификаты, подписанные центром сертификации (CA), следует использовать для производственных систем, особенно если к развертыванию Portal for ArcGIS предполагается доступ пользователей извне вашей организации. Например, если портал не защищен файрволом и доступен через Интернет, использование сертификата, подписанного центром сертификации (CA) гарантирует пользователям вне организации, что идентичность веб-сайта подтверждена.

Помимо подписи владельца сайта сертификат SSL может иметь подпись независимого сертифицирующего органа (CA). Центром сертификации (CA) обычно является пользующаяся доверием сторонняя организация, которая может подтвердить подлинность веб-сайта. Если веб-сайт является заслуживающим доверия, центр сертификации добавляет собственную цифровую подпись в самозаверяющий сертификат SSL сайта. Это говорит веб-клиентам, что идентичность веб-сайта проверена.

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

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

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

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

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

В Manager IIS выполните следующие шаги, чтобы создать сертификат домена:

  1. На панели Подключения (Connections) выберите ваш сервер в дереве каталога и дважды щелкните Сертификаты сервера (Server Certificates).

  2. На панели Действия (Actions) щелкните Создать сертификат домена (Create Domain Certificate).

  3. В диалоговом окне Свойства отличительного имени (Distinguished Name Properties) введите обязательную для сертификата информацию:
    1. В поле Общее имя (Common name) введите полное доменное имя компьютера, например, portal.domain.com.
    2. Заполните другие параметры, указав данные вашей организации и расположения.

  4. Щелкните Далее (Next).
  5. В диалоговом окне Cертифицирующая организация (Online Certification Authority) щелкните Выбрать (Select) и выберите сертифицирующую организацию в пределах домена, которая будет подписывать сертификат. Если эта опция не доступна, введите сертифицирующую организацию домена в поле Укажите сертифицирующую организацию (Specify Online Certification Authority), например, City Of Redlands Enterprise Root\REDCASRV.empty.local. Если вам необходима помощь в этом шаге, обратитесь к системному администратору.

  6. Введите удобное имя сертификата домена и щелкните Завершить (Finish).

Последний шаг – связать сертификат домена с SSL-портом 443. Инструкции см. в разделе Привязка сертификата к веб-сайту.

Самозаверяющие сертификаты

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

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

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

  • Предупреждения от веб-браузера и ArcGIS for Desktop о сомнительном содержании сайта. При обнаружении самозаверяющего сертификата веб-браузер обычно выдает предупреждение и просит подтвердить переход на сайт. Если вы используете самозаверяющий сертификат, многие браузеры предупреждают об этом с помощью значков или красного цвета в адресной строке. Будьте готовы увидеть такие предупреждения, если вы настраиваете ваш портал на использование самозаверяющего сертификата.
  • Невозможность открыть интегрированный сервис во вьюере карт портала, добавить элемент защищенного сервиса к порталу, войти в ArcGIS Server Manager на интегрированном сервере и подключиться к порталу из Esri Maps for Office.
  • Непредвиденное поведение при печати кэшированных сервисов и доступе к порталу из клиентских приложений.
  • Невозможность войти в портал из Esri Maps for Office, если только самозаверяющийся сертификат не установлен в хранилище сертификатов Доверенные корневые центры сертификации (Trusted Root Certification Authorities) на компьютере с Esri Maps for Office.
Внимание:

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

Создание самозаверяющегося сертификата в IIS

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

  1. На панели Подключения (Connections) выберите ваш сервер в дереве каталога и дважды щелкните Сертификаты сервера (Server Certificates).

  2. На панели Действия (Actions) щелкните Создать самозаверяющий сертификат (Create Self-Signed Certificate).

  3. Введите удобное имя для нового сертификата и нажмите OK.

Последний шаг – связать самозаверяющийся сертификат с SSL-портом 443. Инструкции см. в разделе Привязка сертификата к веб-сайту.

Привязка сертификата к веб-сайту

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

Привязка сертификата к порту 443 в IIS

В Manager IIS выполните следующие шаги, чтобы связать сертификат с SSL-портом 443:

  1. Выберите ваш сайт в дереве каталога и на панели Действия (Actions) щелкните Связи (Bindings).
    • Если порт 443 отсутствует в списке Связи, щелкните Добавить (Add). В ниспадающем списке Тип (Type) выберите https. Оставьте порт 443.

    • Если порт 443 имеется в списке, выберите его и щелкните Редактировать (Edit).
  2. В ниспадающем списке сертификат SSL выберите имя вашего сертификата и щелкните OK.

Проверка сайта

После привязки сертификата и веб-сайта, вы можете настроить Web Adaptor на работу с порталом. Вам понадобится открыть страницу настройки Web Adaptor с использованием URL по протоколу HTTPS, например, https://webadaptor.domain.com/arcgis/webadaptor.

После настройки Web Adaptor следует проверить, что SSL работает правильно, сделав HTTPS-запрос к веб-сайту портала, например, https://webadaptor.domain.com/arcgis/home. Если вы проводите тестирование с самозаверяющим сертификатом, отключите предупреждения браузера о небезопасном подключении. Обычно это делается путем добавления в браузер исключения, разрешающего работать с сайтом, имеющим самозаверяющий сертификат.

Более подробно о тестировании сайта с SSL см. в инструкциях Microsoft по настройке SSL в IIS. Дополнительные сведения об использовании SSL в развертывании портала см. в разделе Оптимальные методы защиты.

Создание самозаверяющего SSL-сертификата — Команды Linux

В этой статье объясняется, как создать самоподписанный сертификат SSL с помощью инструмента openssl .

Что такое самоподписанный сертификат SSL?

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

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

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

Подготовка

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

Чтобы проверить, установлен ли пакет openssl в вашей системе Linux, откройте терминал, введите openssl version и нажмите Enter. Если пакет установлен, система распечатает версию OpenSSL, иначе вы увидите что-то вроде openssl command not found .

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

  • Ubuntu и Debian

     sudo apt install openssl
  • Centos и Fedora

     sudo yum install openssl

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

Чтобы создать новый самоподписанный сертификат SSL, используйте команду openssl req :

openssl req -newkey rsa:4096 
            -x509 
            -sha256 
            -days 3650 
            -nodes 
            -out example.crt 
            -keyout example.key

Давайте разберем команду и поймем, что означает каждая опция:

  • -newkey rsa:4096 — Создает новый запрос сертификата и 4096-битный ключ RSA. По умолчанию — 2048 бит.
  • -x509 — Создает сертификат X.509.
  • -sha256 — использовать 265-битный SHA (алгоритм безопасного хеширования).
  • -days 3650 — количество дней, в течение которых сертификат должен быть сертифицирован. 3650 — это десять лет. Вы можете использовать любое положительное целое число.
  • -nodes — создает ключ без ключевой фразы.
  • -out example.crt — указывает имя файла, в которое будет записан вновь созданный сертификат. Вы можете указать любое имя файла.
  • -keyout example.key — указывает имя файла, в которое будет -keyout example.key только что созданный закрытый ключ. Вы можете указать любое имя файла.

Для получения дополнительной информации о параметрах команды openssl req посетите страницу документации OpenSSL req.

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

Generating a RSA private key
......................................................................++++
........++++
writing new private key to 'example.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----

Введите запрошенную информацию и нажмите Enter .

Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:Alabama
Locality Name (eg, city) []:Montgomery
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Linuxize
Organizational Unit Name (eg, section) []:Marketing
Common Name (e.g. server FQDN or YOUR name) []:linuxize.com
Email Address []:[email protected]

Сертификат и закрытый ключ будут созданы в указанном месте. Используйте команду ls, чтобы убедиться, что файлы были созданы:

ls
example.crt example.key

Это оно! Вы создали новый самоподписанный сертификат SSL.

Всегда рекомендуется создавать резервную копию нового сертификата и ключа на внешнем хранилище.

Создание самозаверяющего SSL-сертификата без запроса

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

openssl req -newkey rsa:4096 
            -x509 
            -sha256 
            -days 3650 
            -nodes 
            -out example.crt 
            -keyout example.key 
            -subj "/C=SI/ST=Ljubljana/L=Ljubljana/O=Security/OU=IT Department/CN=www.example.com"
Generating a RSA private key
......................................................................++++
........++++
writing new private key to 'example.key'
-----

Поля, указанные в строке -subj , перечислены ниже:

  • C= — Название страны. Двухбуквенное сокращение ISO.
  • ST= — Название штата или провинции.
  • L= — Название населенного пункта. Название города, в котором вы находитесь.
  • O= — полное название вашей организации.
  • OU= — Организационная единица.
  • CN= — полное доменное имя.

Выводы

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

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

Похожие статьи

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

Последнее обновление 3 февраля 2021 г.

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

Предварительные требования

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

  $ который openssl
/ usr / bin / openssl
  

Если команда which не возвращает путь, вам нужно будет установить openssl самостоятельно:

Сгенерировать закрытый ключ и запрос на подпись сертификата

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

Когда команда openssl req запрашивает «пароль вызова», просто нажмите return, оставив пароль пустым. Этот пароль используется центрами сертификации для аутентификации владельца сертификата, когда они хотят отозвать свой сертификат. Поскольку это самозаверяющий сертификат, отозвать его через CRL (список отзыва сертификатов) невозможно.

  $ openssl genrsa -aes256 -passout pass: gsahdg -out server.pass.key 4096
...
$ openssl rsa -passin pass: gsahdg -in server.pass.key -out server.key
запись ключа RSA
$ rm server.pass.key
$ openssl req -new -key server.key -out server.csr
...
Название страны (двухбуквенный код) [AU]: США
Название штата или провинции (полное название) [Some-State]: Калифорния
...
Пароль вызова []:
...
  

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

Самозаверяющий сертификат SSL создается из закрытого ключа server.key и файлов server.csr .

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

Файл server.crt — это сертификат вашего сайта, подходящий для использования с надстройкой Heroku SSL вместе с закрытым ключом server.key .

Как создать запрос на подпись сертификата (CSR) для Microsoft IIS 8

Следующие инструкции проведут вас через процесс создания CSR в Microsoft IIS 8. Чтобы узнать больше о CSR и важности вашего закрытого ключа, обратитесь к нашей статье Обзор запроса на подпись сертификата.Если вы уже сгенерировали CSR и получили доверенный сертификат SSL, ознакомьтесь с нашими Инструкциями по установке SSL и не обращайте внимания на приведенные ниже шаги.

1. Откройте диспетчер информационных служб Интернета (IIS)

Щелкните «Пуск» , «Панель управления», «Система и безопасность», «Администрирование», «» и выберите «Диспетчер информационных служб Интернета» (IIS) .

2. Выберите сервер, на котором вы хотите сгенерировать сертификат

В левом меню Connections выберите имя сервера (хост), на котором вы хотите сгенерировать запрос.

3. Перейдите к Сертификатам сервера

В центральном меню щелкните значок Сертификаты сервера в разделе Безопасность внизу.

4. Выберите Создать новый сертификат

В правом меню Действия щелкните Создать запрос сертификата.

5. Введите данные CSR

В окне Свойства отличительного имени введите необходимые данные CSR и затем нажмите Далее.

Примечание: Чтобы избежать типичных ошибок при заполнении данных CSR, ознакомьтесь с нашей статьей Обзор запроса на подпись сертификата .

6. Выберите поставщика криптографических услуг и длину в битах

В окне Свойства поставщика криптографических служб выберите Microsoft RSA SChannel Cryptographic Provider и Битовая длина из 2048 , затем нажмите Далее.

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

7. Сохраните CSR

Нажмите Обзор , чтобы указать место, где вы хотите сохранить CSR как файл «.txt», и нажмите Готово.

8. Создайте заказ

Найдите и откройте вновь созданный CSR из указанного вами места в текстовом редакторе, таком как Блокнот, и скопируйте весь текст, включая:

 ----- НАЧАТЬ ЗАПРОС СЕРТИФИКАТА -----
А также
----- ЗАПРОС СЕРТИФИКАТА ----- 

Вернитесь к Форме создания на нашем веб-сайте, вставьте весь CSR в пустое текстовое поле и продолжите процесс создания.

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

После завершения процесса проверки и получения доверенного сертификата SSL от выдающего центра сертификации (ЦС) перейдите к следующему шагу, используя наши инструкции по установке SSL для Microsoft IIS 8.

Создание

CSR | Создать запрос на подпись сертификата

Общие принципы создания CSR

Прежде чем вы сможете заказать сертификат SSL, рекомендуется сгенерировать запрос на подпись сертификата (CSR) со своего сервера или устройства. Узнать больше о сертификатах SSL »

CSR — это закодированный файл, который предоставляет вам стандартизированный способ отправки DigiCert вашего открытого ключа, а также некоторой информации, которая идентифицирует вашу компанию и доменное имя.Когда вы генерируете CSR, большинство серверного программного обеспечения запрашивает следующую информацию: общее имя (например, www.example.com), название и местонахождение организации (страна, штат / провинция, город / город), тип ключа (обычно RSA), и размер ключа (минимум 2048 бит).

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

После создания CSR вам нужно будет скопировать и вставить его в онлайн-форму заказа, когда вы перейдете к покупке сертификата SSL.Форма заказа онлайн-сертификата »

Не уверены, какой сертификат SSL вам нужен? »

Общие платформы и операционные системы

Microsoft IIS

Генератор CSR: Инструкции:

Подробнее:

Сервер Microsoft Exchange

Генераторы CSR: Инструкции:

Подробнее:

Сервер Apache (OpenSSL)

Генератор CSR: Инструкции:

Подробнее:

Сервер Tomcat (Keytool)

Генератор CSR: Инструкции:

Подробнее:

Microsoft Lync

Генератор CSR:

Инструкции:

Подробнее:

Требуется длина ключа 2048 бит

Для обеспечения безопасности сертификаты SSL должны использовать ключи длиной 2048 бит или более.Подробнее »
Не можете сгенерировать CSR с 2048-битным ключом на вашей серверной платформе? Пожалуйста свяжитесь с нами.

Хотите знать, какая информация необходима для вашей CSR?

  1. Общее имя (полное доменное имя [FQDN], которое будет защищено вашим сертификатом)
  2. Страна (двузначный код)
  3. Штат или населенный пункт (полные названия, например, Калифорния или Барселона)
  4. Название организации (полное юридическое название компании или личное имя, зарегистрированное в вашем регионе)
  5. Организационное подразделение (подразделение вашей организации, сертификат предназначен для [e.g., ИТ или маркетинг])

Создание CSR для подстановочного сертификата?

При создании CSR для сертификата с подстановочными знаками общее имя должно начинаться со звездочки (*) (например, * .example.com). Подстановочный знак (*) может означать любое имя, в котором нет символа точки.

Все инструкции по созданию CSR для платформы / ОС

Получите необходимую поддержку, когда она вам понадобится

У DigiCert есть отмеченная наградами собственная группа технической поддержки, которая готова помочь вам с любыми проблемами с цифровыми сертификатами, которые у вас есть.Наша приверженность беспрецедентной поддержке клиентов отражена в многочисленных наградах за обслуживание, которые мы получили. Нигде это лучше не продемонстрировано, чем в сотнях 5-звездочных отзывов клиентов, которые мы размещаем на SSLShopper.com. Фактически, DigiCert — единственный центр сертификации с безупречным 5-звездочным рейтингом!


Профессиональная поддержка доступна в любое время!

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

Бесплатная служба поддержки: 1-800-896-7973 (США и Канада)
Прямая поддержка: 1-801-701-9600
Бесплатный факс: 1-866-842-0223 (США и Канада)
Электронная почта : [email protected]

Как сгенерировать самоподписанный сертификат SSL с помощью OpenSSL?

Я что-то упускаю? Это правильный способ создания самозаверяющего сертификата?

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

Это сложно, потому что у браузеров есть свой набор требований, и они более строгие, чем IETF. Требования, используемые браузерами, задокументированы на форумах CA / Browser Forums (см. Ссылки ниже). Ограничения возникают в двух ключевых областях: (1) якоря доверия и (2) имена DNS.

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

Некоторые браузеры не совсем упрощают импорт самозаверяющего сертификата сервера. Фактически, вы не можете этого сделать с некоторыми браузерами, такими как браузер Android. Итак, полное решение — стать вашим собственным авторитетом.

Если вы не становитесь вашим собственным авторитетом, вы должны получить правильные имена DNS, чтобы дать сертификату наибольшие шансы на успех. Но я бы посоветовал вам стать вашим собственным авторитетом.Легко стать своим авторитетом, и это позволит избежать всех проблем с доверием (кому лучше доверять, чем себе?).


Вероятно, это не тот сайт, который вы ищете!
Сертификат безопасности сайта не является доверенным!

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

Лучший способ избежать этого:

  1. Создайте свой собственный авторитет (т.е., стать CA)
  2. Создайте запрос на подпись сертификата (CSR) для сервера
  3. Подпишите CSR сервера своим ключом CA
  4. Установите сертификат сервера на сервер
  5. Установите сертификат CA на клиенте

Шаг 1 — Создание собственного центра сертификации означает создание самозаверяющего сертификата с CA : истинный и правильное использование ключа. Это означает, что Subject и Issuer — это одна и та же сущность, CA имеет значение true в Basic Constraints (он также должен быть отмечен как критический), использование ключа — keyCertSign и crlSign (если вы используете CRL), а Subject Key Identifier (SKI) совпадает с Authority Key Identifier (AKI).

Чтобы стать вашим собственным центром сертификации, см. * Как подписать запрос на подпись сертификата в центре сертификации? о переполнении стека. Затем импортируйте свой ЦС в хранилище доверия, используемое браузером.

Шаги 2–4 примерно соответствуют тому, что вы делаете сейчас для общедоступного сервера, когда подключаетесь к услугам центра сертификации, такого как Startcom или CAcert. Шаги 1 и 5 позволяют избежать стороннего авторитета и действовать как собственный авторитет (кому лучше доверять, чем себе?).

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

Проблема того, что браузеры (и другие подобные пользовательские агенты) не доверяют самоподписанным сертификатам , будет большой проблемой в Интернете вещей (IoT). Например, что произойдет, если вы подключите термостат или холодильник, чтобы запрограммировать его? Ответ: ничего хорошего с точки зрения пользовательского опыта.

Рабочая группа W3C по WebAppSec начинает изучать эту проблему.См., Например, Предложение: Пометка HTTP как незащищенного.


Как создать самозаверяющий сертификат с OpenSSL

Приведенные ниже команды и файл конфигурации создают самозаверяющий сертификат (он также показывает, как создать запрос на подпись). Они отличаются от других ответов в одном отношении: DNS-имена, используемые для самоподписанного сертификата, находятся в Subject Alternate Name (SAN) , а не в Common Name (CN) .

DNS-имена помещаются в SAN через файл конфигурации со строкой subjectAltName = @alternate_names (это невозможно сделать через командную строку).Затем в файле конфигурации есть раздел alternate_names (вы должны настроить его по своему вкусу):

  [альтернативные_имя]

DNS.1 = example.com
DNS.2 = www.example.com
DNS.3 = mail.example.com
DNS.4 = ftp.example.com

# Добавьте их, если они вам нужны. Но обычно они вам не нужны или
# они нужны в производстве. Они могут понадобиться вам для разработки.
# DNS.5 = localhost
# DNS.6 = localhost.localdomain
# IP.1 = 127.0.0.1
# IP.2 = :: 1
  

Важно указать DNS-имя в SAN, а не в CN, потому что и , и IETF, и форумы CA / Browser определяют эту практику. Они также указывают, что имена DNS в CN устарели (но не запрещены). Если вы помещаете DNS-имя в CN, тогда оно должно быть включено в SAN в соответствии с политиками CA / B. Таким образом, вы не можете избежать использования альтернативного имени субъекта.

Если вы не поместите DNS-имена в SAN, тогда сертификат не сможет пройти проверку в браузере и других пользовательских агентах, которые следуют рекомендациям CA / Browser Forum.

Связано: браузеры следуют политикам CA / Browser Forum; а не политики IETF. Это одна из причин, по которой сертификат, созданный с помощью OpenSSL (который обычно соответствует IETF), иногда не проверяется в браузере (браузеры следуют CA / B). Это разные стандарты, у них разные политики выпуска и разные требования к валидации.


Создайте самоподписанный сертификат (обратите внимание на добавление опции -x509 ):

  openssl req -config example-com.conf -new -x509 -sha256 -newkey rsa: 2048 -nodes \
    -keyout пример-com.key.pem -days 365 -out пример-com.cert.pem
  

Создайте запрос на подпись (обратите внимание на отсутствие опции -x509 ):

  openssl req -config example-com.conf -new -sha256 -newkey rsa: 2048 -nodes \
    -keyout пример-com.key.pem -days 365 -out пример-com.req.pem
  

Распечатать самоподписанный сертификат :

  openssl x509 -в примере-com.cert.pem -text -noout
  

Распечатать запрос на подпись :

  openssl req -в примере-com.req.pem -text -noout
  

Файл конфигурации (передается через опцию -config )

  [требуется]
default_bits = 2048
default_keyfile = server-key.pem
отличительное_имя = субъект
req_extensions = req_ext
x509_extensions = x509_ext
string_mask = utf8only

# DN субъекта может быть сформировано с использованием X501 или RFC 4514 (описание см. В RFC 4519).# Это своего рода мэшап. Например, RFC 4514 не предоставляет адрес электронной почты.
[ тема ]
countryName = Название страны (двухбуквенный код)
countryName_default = США

stateOrProvinceName = Название штата или провинции (полное имя)
stateOrProvinceName_default = NY

localityName = Название населенного пункта (например, город)
localityName_default = Нью-Йорк

organizationName = Название организации (например, компания)
organizationName_default = Пример, ООО

# Используйте здесь понятное имя, потому что оно представляется пользователю.DNS сервера
# имена помещаются в альтернативные имена субъектов. Кроме того, DNS-имена здесь устарели.
# как IETF, так и CA / Browser Forums. Если вы разместите здесь DNS-имя, вы
# также должен включать DNS-имя в SAN (в противном случае Chrome и другие
# строго соблюдать базовые требования CA / браузера не удастся).
commonName = Общее имя (например, полное доменное имя сервера или ВАШЕ имя)
commonName_default = Пример компании

emailAddress = Адрес электронной почты
emailAddress_default = test @ example.ком

# Раздел x509_ext используется при генерации самоподписанного сертификата. То есть openssl req -x509 ...
[x509_ext]

subjectKeyIdentifier = хэш
AuthorityKeyIdentifier = keyid, эмитент

# Вам нужна только цифровая подпись, указанная ниже. * Если * вы не разрешаете
# Транспорт ключа RSA (т. Е. Вы используете эфемерные наборы шифров), затем
# опускаем keyEncipherment, потому что это ключевой транспорт.
basicConstraints = CA: FALSE
keyUsage = digitalSignature, keyEncipherment
subjectAltName = @alternate_names
nsComment = "Сертификат, созданный OpenSSL"

# RFC 5280, раздел 4.2.1.12 делает EKU необязательным
# CA / Browser Baseline Requirements, Приложение (B) (3) (G) сбивает меня с толку
# В любом случае вам, вероятно, понадобится только serverAuth.
# extendedKeyUsage = serverAuth, clientAuth

# Раздел req_ext используется при генерации запроса на подпись сертификата. То есть, openssl req ...
[req_ext]

subjectKeyIdentifier = хэш

basicConstraints = CA: FALSE
keyUsage = digitalSignature, keyEncipherment
subjectAltName = @alternate_names
nsComment = "Сертификат, созданный OpenSSL"

# RFC 5280, раздел 4.2.1.12 делает EKU необязательным
# CA / Browser Baseline Requirements, Приложение (B) (3) (G) сбивает меня с толку
# В любом случае вам, вероятно, понадобится только serverAuth.
# extendedKeyUsage = serverAuth, clientAuth

[альтернативные_имя]

DNS.1 = example.com
DNS.2 = www.example.com
DNS.3 = mail.example.com
DNS.4 = ftp.example.com

# Добавьте их, если они вам нужны. Но обычно они вам не нужны или
# они нужны в производстве. Они могут понадобиться вам для разработки.
# DNS.5 = localhost
# DNS.6 = localhost.localdomain
# DNS.7 = 127.0.0.1

# IPv6 localhost
# DNS.8 = :: 1
  

Возможно, вам потребуется сделать следующее для Chrome. В противном случае Chrome может пожаловаться на недопустимое общее имя ( ERR_CERT_COMMON_NAME_INVALID ). Я не уверен, какова связь между IP-адресом в SAN и CN в этом случае.

  # IPv4 localhost
# IP.1 = 127.0.0.1

# IPv6 localhost
# IP.2 = :: 1
  

Существуют и другие правила, касающиеся обработки имен DNS в X.509 / PKIX сертификаты. См. Правила в этих документах:

RFC 6797 и RFC 7469 перечислены, потому что они более строгие, чем другие документы RFC и CA / B. RFC 6797 и 7469 также не допускают использование IP-адреса .

https — Как создать самоподписанный сертификат SSL для тестовых целей?

https — Как создать самоподписанный сертификат SSL для тестовых целей? — Переполнение стека

Спросил

Просмотрено 66k раз

Закрыто. Вопрос не по теме. В настоящее время он не принимает ответы.

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

Создан 10 янв.

Дима СтопельДима Стопель

2,18722 золотых знака1515 серебряных знаков1212 бронзовых знаков

1

Вы можете сделать это через openssl:

  1. Установите пакет openssl (если вы используете Windows, загрузите двоичные файлы здесь).

  2. Создать закрытый ключ: openssl genrsa 2048> private.pem

  3. Создать самоподписанный сертификат: openssl req -x509 -days 1000 -new -key private.pem -out public.pem

  4. При необходимости создайте PFX: openssl pkcs12 -export -in public.pem -inkey private.pem -out mycert.pfx