Разное

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

Содержание

Создание 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

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

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


На апрель 2014 года 66% всех веб-серверов использовали OpenSSL. Инструментарий OpenSSL выпущен под лицензией Apache. * / \ ( ) ?.,&.


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



  • 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 сертификат очень удобно и выгодно в компании ЛидерТелеком. Любые вопросы, связанные с выдачей сертификата, можно будет легко решить при помощи отзывчивой службы поддержки.

Создание самоподписанного SSL-сертификата для Nginx в Ubuntu 16.04

Мы покажем вам как создать сертификат, а также настроить веб-сервер Nginx для поддержки SSL

SSL (Secure Socket Layers) представляет собой криптографический протокол для защиты, передаваемых в интернете между клиентом и сервером. Протокол делает невозможным перехват данных злоумышленниками. SSL также помогают пользователям проверять подлинность посещаемые ресурсов. В этой статье мы покажем вам как можно сделать для веб-сервера Nginx на Ubuntu 16.04 самоподписанный сертификат.

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

Нам потребуется:

  • • Уже настроенный сервер Nginx;
  • • Не-root пользователь, имеющий доступ к sudo.

1. Как создать сертификат?

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

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout
/etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned. crt

На экране вы увидите несколько вопросов. Из компонентов команды можно выделить:

  • • Openssl – это базовый инструмент командной строки. Он нужен для создания и управления сертификатами, а также файлами OpenSSL и ключами;
  • • Подкоманда req показывает, что требуется запрос для подписи сертификата X.509 (CSR). Это стандарт инфраструктуры для открытых ключей, для управления сертификатами;
  • • Опция –x509 способна вносить поправки в предыдущую команду. Они сообщает о том, что нужно создать самоподписанный сертификат вместо запроса на его подпись;
  • • -nodes служит для пропуска опции защиты SSL-сертификата с помощью пароля. Это необходимо для тог, чтобы Nginx при запуске считывал файл без необходимости вмешательства пользователя. Если поставить пароль – его нужно будет вводить после каждой перезагрузки;
  • • Опция -days365 поможет задать срок действия сертификата;
  • • Параметр -newkey rsa:2048 дает возможность сделать одновременно сертификат и ключ, ведь он не был создан ранее. Число 2048 значит, что ключ будет на 2048 бит;
  • • Строка -keyout показывает, куда OpenSSL переместит полученный файл ключа;
  • • Опция -out делает то же самое, но для сертификата.

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

Строка common name очень важна. В нее нужно написать свое имя или полное доменное имя вашего сервера. Простыми словами: она нужна для связи с сервером доменного имени. Если его нет, укажите IР сервера. Поля будут выглядеть как-то так:

Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:New York
Locality Name (eg, city) []:New York City
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Bouncy Castles, Inc.
Organizational Unit Name (eg, section) []:Ministry of Water Slides
Common Name (e. g. server FQDN or YOUR name) []:server_IP_address
Email Address []:admin@your_domain.com

Обратите внимание, что файлы сертификата и ключа будут перемещены в папку /etc/nginx/ssl. Если применять OpenSSL, вам предстоит также сделать специальные ключи Диффи-Хеллмана для поддержки PFS. Чтобы это сделать, наберите в командной строке:

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Подождите несколько минут пока сгенерируются ключи. Они будут размещены в каталоге /etc/ssl/certs/dhparam.pem.

2. Как настроить Nginx для поддержки SSL-сертификатов?

Созданные нами ключи хранятся в папке: /etc/ssl. Теперь нам нужно будет внести правки в настройки веб-сервера Nginx:

1) В первую очередь – создать сниппет, показывающий папку, в которой хранятся SSL и ключ. Новый сниппет для Nginx создаем в папке /etc/nginx/snippets. Мы советуем вам отразить его назначение в названии. Наберите в консоли:

sudo nano /etc/nginx/snippets/self-signed.conf

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

ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;

2) Теперь потребуется добавить настройки сертификата с помощью еще одного сниппета. Это позволит нам получить надежный механизм шифрования с помощью дополнительных возможностей безопасности. Заданные параметры получится применять в будущих конфигурациях веб-сервера Nginx. Дайте файлу какое-нибудь общее имя:

sudo nano /etc/nginx/snippets/ssl-params.conf

Настроим DNS-распознаватель для запросов с восходящего канала, а также добавим ssl_dhparam для поддержки ключей Диффи-Хеллмана. Получится вот так:

# from https://cipherli.st/
# and https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx. html
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_ecdh_curve secp384r1;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
ssl_dhparam /etc/ssl/certs/dhparam.pem;

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

3) И последнее: настроить блоки server, чтобы они могли обслуживать запросы SSL и поддерживать новые настройки. В нашей статье рассматривается случай применения виртуального хоста default (блок server). Он хранится в папке /etc/nginx/sites-available. Если захотите пользоваться другим файлом, нужно указать его имя. Создадим резервную копию файла блока server с помощью:

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak

Теперь этот блок откроем в редакторе:

sudo nano /etc/nginx/sites-available/default

Он будет выглядеть где-то так:

server {
listen 80 default_server;
listen [::]:80 default_server;
# SSL configuration
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
. . .

Перенаправим незашифрованные HTTP-запросы на HTTPS. Если же вам требуется поддержка двух протоколов, то мы такой случай рассмотрим позже. Делим настройки на два отдельных блока. Правило server_name будет идти после двух директив listen. В нем требуется указать IP-адрес либо доменное имя. Ну, а на второй блок server настроим переадресацию. Имейте ввиду, что для настройки мы будем использовать временный редирект 302. Когда настройки будут правильные, можете смело задавать постоянный редирект 301. В файл добавим:

server {
listen 80 default_server;
listen [::]:80 default_server;
server_name server_domain_or_IP;
return 302 https://$server_name$request_uri;
}
# SSL configuration
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
. . .

После этих строк нам предстоит добавить новый блок server для оставшихся настроек. Правило listen, использующее порт 443, нужно раскомментировать. Потом напишем правило http2 поддерживающее HTTP/2. Созданные ранее сниппеты нужно теперь просто выключить в файл. Помните, что в файле может существовать только одно правило listen, для комбинаций портов и IP-адресов, включающая модификатор default_server. Его нужно оставить только в одном блоке и удалить из остальных.

server {
listen 80 default_server;
listen [::]:80 default_server;
server_name server_domain_or_IP;
return 302 https://$server_name$request_uri;
}
server {
# SSL configuration
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
include snippets/self-signed.conf;
include snippets/ssl-params.conf;
. . . 

Изменения нужно сохранить, а файл – закрыть. Если нужно настроить одновременную поддержку HTTP и HTTPS, то объедините два блока server в один. Редирект же нужно удалить.

server {
listen 80 default_server;
listen [::]:80 default_server;
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name server_domain_or_IP;
include snippets/self-signed.conf;
include snippets/ssl-params.conf;
. . .

Эти изменения нужно сохранить. После этого закрывайте файл.

3. Как настроить брандмауэр?

Мы будем настраивать брандмауэр ufw для поддержки SSL-трафика. При инсталляции Nginx проводит регистрацию нескольких профилей в ufw. Вы можете просмотреть доступные с помощью команд:

sudo ufw app list
Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH

Нам также нужно будет увидеть текущие настройки брандмауэра. Наберите в консоли:

sudo ufw status

Они будут выглядеть вот так, если поддерживается только трафик с протокола HTTP:

Status: active
To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
Nginx HTTP                 ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
Nginx HTTP (v6)            ALLOW       Anywhere (v6)

Нам же нужна поддержка и HTTPS. Для этого мы отключим профиль Nginx HTTP и настроим Nginx Full. Наберите в командной строке:

sudo ufw allow 'Nginx Full'
sudo ufw delete allow 'Nginx HTTP'

Настройки брандмауэра изменятся и будут выглядеть вот так:

sudo ufw status
Status: active
To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
Nginx Full                 ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
Nginx Full (v6)            ALLOW       Anywhere (v6)

4. Как обновить настройки Nginx

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

sudo nginx -t

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

nginx: [warn] "ssl_stapling" ignored, issuer certificate not found
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx. conf test is successful

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

sudo systemctl restart nginx

5. Тестируем настройки

Нам нужно убедиться, что трафик между клиентом и сервером шифруется. Это можно сделать, открыв в браузере ссылку:

https://домен_или_IP_сервера

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

Your connection is not private
Attackers might be trying to steal your information
(for example, passwords,messages, or credit cards). NET::ERR_CERT_AUTHORITY_INVALID

Браузер не может проверить подлинность хоста, поэтому и выдает такое сообщение. Но нам нужно лишь шифрование соединения, которое сертификат нормально обеспечивает. Можно просто пропустить данное сообщение безопасности, нажав кнопку «Advanced», а также кликнув по показанной ссылке. Это даст вам доступ к вашему сайту. Нам нужно будет также проверить, работает ли переадресация трафика с HTTP на HTTPS, если ранее настраивали два блока server:

http://server_domain_or_IP

6. Как сделать постоянный редирект?

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

sudo nano /etc/nginx/sites-available/default

В нем нужно найти return 302 и заменить значение на 301. Получится следующее:

server {
listen 80 default_server;
listen [::]:80 default_server;
server_name server_domain_or_IP;
return 301 https://$server_name$request_uri;
}
. . .

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

sudo nginx -t

Если все правильно, Nginx можно перезапустить с помощью:

sudo systemctl restart nginx

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

Опубликовано: Июнь 19, 2017

Please enable JavaScript to view the comments powered by Disqus.

Генерация запроса на подпись сертификата вручную (CSR) Использование OpenSSL

Этот урок покажет вам, как вручную создать Запрос на подпись сертификата (или CSR) в среде веб-хостинга Apache или Nginx с использованием OpenSSL.

Видео

Что такое OpenSSL?
OpenSSL — очень полезный набор инструментов командной строки с открытым исходным кодом для работы с X.509 сертификаты, запросы на подпись сертификатов (CSRs) и криптографические ключи. Если вы используете вариант UNIX, такой как Linux или macOS, OpenSSL, вероятно, уже установлен на вашем компьютере. Если вы хотите использовать OpenSSL в Windows, вы можете включить Подсистема Linux в Windows 10 или установить Cygwin.

В этих инструкциях мы собираемся использовать OpenSSL req утилита для генерации как закрытого ключа, так и CSR в одной команде. Генерация секретного ключа таким способом гарантирует, что вам будет предложено ввести пароль для защиты закрытого ключа. Во всех приведенных примерах команд замените имена файлов, показанные в ALL CAPS, на фактические пути и имена файлов, которые вы хотите использовать. (Например, вы можете заменить PRIVATEKEY.key вместе с /private/etc/apache2/server.key в среде MacOS Apache.) Это практическое руководство охватывает генерацию обоих RSA и ECDSA ключи.

RSA

Приведенная ниже команда OpenSSL сгенерирует 2048-битный закрытый ключ RSA и CSR:

openssl req -newkey rsa: 2048 -keyout PRIVATEKEY.key -out МОЙCSR.csr

Давайте разберем команду:

  • openssl это команда для запуска OpenSSL.
  • req это утилита OpenSSL для создания CSR.
  • -newkey rsa:2048 сообщает OpenSSL создать новый 2048-битный закрытый ключ RSA. Если вы предпочитаете ключ 4096 бит, вы можете изменить это число на 4096.
  • -keyout PRIVATEKEY.key указывает, где сохранить файл закрытого ключа.
  • -out MYCSR.csr указывает, где сохранить CSR .
  • С этими двумя последними элементами не забудьте использовать свои собственные пути и имена файлов для закрытого ключа и CSR, а не заполнители.

После ввода команды нажмите вводить, Вам будет представлен ряд подсказок:

  • Сначала создайте и подтвердите парольную фразу. Запомните эту парольную фразу, потому что она понадобится вам снова для доступа к вашему секретному ключу.
  • Теперь вам будет предложено ввести информацию, которая будет включена в ваш CSR, Эта информация также известна как Отличное имя или DN, Распространенное имя поле обязательно для SSL.com при отправке вашего CSR, но остальные не являются обязательными. Если вы хотите пропустить дополнительный элемент, просто введите вводить когда это появится:
    • Ряд приводов Имя страны (необязательно) занимает две буквы код страны.
    • Ряд приводов Название населенного пункта Поле (необязательно) предназначено для вашего города.
    • Ряд приводов Название организации поле (необязательно) предназначено для названия вашей компании или организации.
    • Ряд приводов Название организационной единицы (необязательно) для вашего отдела или отдела.
    • Ряд приводов Распространенное имя поле (обязательное) используется для Полное доменное имя (FQDN) сайта этот сертификат будет защищать.
    • Ваш e-mail (опционально)
    • Ряд приводов Пароль для вызова поле является необязательным и может быть пропущено.

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

ECDSA

Чтобы создать закрытый ключ ECDSA с вашим CSR, вам необходимо вызвать вторую утилиту OpenSSL, чтобы сгенерировать параметры для ключа ECDSA.

Эта команда OpenSSL сгенерирует файл параметров для 256-битного ключа ECDSA:

openssl genpkey -genparam -algorithm ec -pkeyopt ec_paramgen_curve: P-256 -out ECPARAM.pem
  • openssl genpkey запускает утилиту openssl для генерации закрытого ключа.
  • -genparam генерирует файл параметров вместо закрытого ключа. Вы также можете сгенерировать закрытый ключ, но используя файл параметров при генерации ключа и CSR гарантирует, что вам будет предложено ввести пароль.
  • -algorithm ec определяет алгоритм эллиптической кривой.
  • -pkeyopt ec_paramgen_curve:P-256 выбирает 256-битную кривую. Если вы предпочитаете 384-битную кривую, измените часть после двоеточия на P-384.
  • -out ECPARAM.pem предоставляет путь и имя файла для файла параметров.

Теперь укажите ваш файл параметров при создании CSR:

openssl req -newkey ec: ECPARAM.pem -keyout PRIVATEKEY.key -out МОЙCSR.csr

Команда такая же, как мы использовали в примере RSA выше, но -newkey RSA:2048 был заменен на -newkey ec:ECPARAM.pem, Как и прежде, вам будет предложено ввести пароль и информацию о различающемся имени для CSR.

При желании вы можете использовать перенаправление для объединения двух команд OpenSSL в одну строку, пропуская создание файла параметров, как показано ниже:

openssl req -newkey ec: <(openssl genpkey -genparam -algorithm ec -pkeyopt ec_paramgen_curve: P-256) -keyout PRIVATEKEY.key -out MYCSR.csr

Спасибо, что выбрали SSL.com! Если у вас возникнут вопросы, свяжитесь с нами по электронной почте по адресу [email protected], вызов 1-877-SSL-SECURE, или просто нажмите ссылку чата в правом нижнем углу этой страницы. Вы также можете найти ответы на многие распространенные вопросы поддержки в нашем база знаний.

Установка SSL сертификата на домен

Статья давно не обновлялась, поэтому информация могла устареть.

Для установки сертификата потребуется:

  • Файл сертификата и цепочка сертификата. Центр сертификации присылает эти данные на почтовый ящик владельца сертификата.
  • Ключ сертификата. Он у вас должен быть. Ключ генерируется перед заказом сертификата, на основе ключа генерируется csr запрос.
  • Root доступ к серверу.

 

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

Далее:

1. Зайдите в ISPmanager под пользователем, которому принадлежит домен. Войдя под root’ом это можно сделать так: ISPmanager — Пользователи — выделите пользователя — нажмите «Вход» (справа вверху кнопка с изображением лестницы и двери).

Примечание: не забудьте для пользователя включить SSL (ISPmanager — Пользователи — двойной клик по пользователю — вкладка «Права»)

2. В разделе World Wide Web — «SSL-сертификаты» — справа вверху кнопка «Создать». Укажите «Тип сертификата» — существующий и заполните все поля:

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

Приватный ключ — укажите содержимое файла приватного ключа

Сертификат — укажите содержимое файла SSL-сертификата

Пароль — указывайте, если ключ сертификата зашифрован (обычно не требуется)

Цепочка сертификатов — Certificate bundle: цепочка сертификатов, которыми подписан данный сертификат. Подробнее о цепочках, в зависимости от типа сертификата, можно узнать в специальной статье.

3. После успешного добавления сертификата в разделе «WWW домены» можно его включить для сайта (двойной клик — установить галочку «SSL» — выбрать из списка нужный сертификат)

4. Детальная проверка установленного сертификата доступна по ссылкам:

Веб-сервер Apache

Если ssl запросы обрабатывает Apache, то сертификат устанавливается в файле конфигурации Apache. Проверить какой веб сервис отвечает на 443 (ssl) порту можно командой:

# netstat -napt | grep 443
tcp        0      0 188.120.233.16:443      0.0.0.0:*               LISTEN      731/apache2
# sockstat |grep 443
root      httpd      83299 19 tcp4   188.120.225.20:443    *:*  

Для установки сертификата откройте конфигурационный файл Apache. На FreeBSD это /usr/local/etc/apache22/httpd.conf. Debian — /etc/apache2/apache2. conf. Centos — /etc/httpd/conf/httpd.conf. Найдите VirtualHost вашего домена.

Иногда вы можете найти блоки <VirtualHost> в отдельных файлах, в директории веб сервера.

Создайте блок <VirtualHost> для подключения SSL соединения. Пример:

<VirtualHost 10.0.0.1:443>
  DocumentRoot /var/www/user/data/www/domain.com
  ServerName domain.com
  SSLEngine on
  SSLCertificateFile /path/to/domain.crt
  SSLCertificateKeyFile /path/to/domain.key
  SSLCACertificateFile /path/to/ca.crt
</VirtualHost>

Где

  • domain.com — имя вашего домена.
  • 10.0.0.1 — ip адрес, на котором находится домен.
  • /var/www/user/data/www/domain.com — путь до домашней директории вашего домена.
  • /path/to/domain.crt — файл, в котором находится сертификат.
  • /path/to/domain.key — файл, в котором находится ключ сертификата.
  • /path/to/ca.crt — файл корневого сертификата.

Перезапустите Apache командой apachectl restart или apache2ctl restart

Веб-сервер Nginx

Если ssl запросы обрабатывает Nginx, то сертификат устанавливается в файле конфигурации Nginx.

Откройте конфигурационный файл Nginx. На Linux — /etc/nginx/nginx.conf

Создайте серверный модуль для SSL соединения. Пример:

server {
        listen 10.0.0.1:443;
        server_name domain.com;
        ssl                  on;
        ssl_certificate     /path/to/domain.crt;
        ssl_certificate_key  /path/to/domain.key ;
  }

Где

  • domain.com — имя вашего домена.
  • 10.0.0.1 — ip адрес, на котором находится домен.
  • /path/to/domain.crt — файл, в котором находится сертификат.
  • /path/to/domain.key — файл, в котором находится ключ сертификата.

Цепочка сертификатов дописывается в файл с сертификатом.

Возьмем пример с Comodo Positive SSL. Центр сертификации присылает файлы domain.crt, PositiveSSLCA2 и AddTrustExternalCARoot. Цепочкой сертификата будет содержание файла PositiveSSLCA2 + AddTrustExternalCARoot. В итоге файл domain.crt должен содержать сертификат домена + сертификаты PositiveSSLCA2 + AddTrustExternalCARoot.

Перезапустите Nginx

/etc/init.d/nginx restart

Несколько SSL сертификатов на одном ip адресе

Если используется несколько сертификатов на одном ip адресе, то браузер получит сертификат сервера по умолчанию, независимо от запрашиваемого имени сервера. Это связано с поведением протокола SSL. SSL-соединение устанавливается до того, как браузер посылает HTTP-запрос, и веб сервер не знает имени запрашиваемого сервера. Следовательно, он лишь может предложить сертификат сервера по умолчанию.

Решение для работы нескольких HTTPS-серверов на одном IP-адресе — расширение Server Name Indication протокола TLS (SNI, RFC 6066), которое позволяет браузеру передать запрашиваемое имя сервера во время SSL handshake, а значит сервер будет знать, какой сертификат ему следует использовать для соединения. Почти все современные браузеры поддерживают SNI, однако чтобы использовать SNI, соответствующая поддержка должна присутствовать также в библиотеке OpenSSL. OpenSSL поддерживает SNI начиная с версии 0.9.8f.

Полезные команды Openssl

  • Создание ключа для SSL-сертификата.
openssl req -batch -noout -new -newkey rsa:2048 -nodes -keyout cert.key
  • Генерация CSR-запроса:
openssl req -new -key cert.key -out cert.csr
  • Убрать пароль с ключа:
openssl rsa -in cert.key -out cert.key
  • Посмотреть данные 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

Два значения должны совпадать.

  • Узнать длину запроса:
echo '(' `openssl req -noout -modulus -in cert. csr | cut -d'=' -f2 | wc -c` '-1)*4' | bc
  • Проверить выдачу HTTPS:
openssl s_client -host  ulanovka.ru -port 443

 

Создание CSR запроса для Microsoft IIS

  • Нажмите Start — Administrative Tools — Internet Information Services (IIS) Manager.
  • Нажмите на имя сервера.
  • В разделе IIS откройте Server Certificates.

 

 

  • Затем справа из меню Actions выберите Create Certificate Request. Откроется окно мастера создания запроса.

 

 

  • Введите всю необходимую информацию.

 

 

Нажмите Next.

  • В следующем окне можно все оставить без изменений. Нажмите Next.
  • Введите имя вашего CSR файла.

 

 

  • Откройте файл, используя текстовый редактор. Для оформления сертификата передайте свой CSR вместе с тэгами BEGIN и END.

 

  • Нажмите Start — Administrative Tools — Internet Information Services (IIS) Manager.
  • Нажмите на имя сервера.
  • В разделе IIS откройте Server Certificates.

 

 

  • Затем справа из меню Actions выберите Complete Certificate Request. Откроется окно мастера.

 

 

  • Загрузите выданный Вам центром сертификации сертификат. Затем введите имя сертификата (оно необходимо только администратору для дальнейшей работы).

 

 

  • Нажмите Оk, и сертификат будет установлен на сервер.
  • Для того, чтобы установить данный сертификат на нужный веб-домен, перейдите в раздел Sites и выберите сайт, для которого заказан сертификат. Из меню Actions в правой части страницы нажмите на Bindings. Откроется окно Site Bindings.

 

 

  • В окне Site Bindings нажмите Add… Откроется окно Add Site Binding.

 

 

  • В меню Type выберите https. В меню IP address должен быть IP адрес сайта или All Unassigned. Порт — 443. В поле SSL Certificate выберите Ваш сертификат.

 

 

Нажмите Ok.

  • Ваш сертификат установлен.

 

 

Включение 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 сертификаты для для сайта, почты [АйТи бубен]

SSL (Secure Sockets Layer — уровень защищённых сокетов) — криптографический протокол, который обеспечивает установление безопасного соединения между клиентом и сервером. Впоследствии на основании протокола SSL 3.0 был разработан и принят стандарт RFC, получивший имя TLS.

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

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

SSL поддерживает три типа аутентификации: Аутентификация обеих сторон (клиент — сервер), аутентификация сервера с неаутентифицированным клиентом и полная анонимность. Всякий раз, когда сервер аутентифицируется, канал безопасен против атаки человек посредине, но полностью анонимная сессия по своей сути уязвима к такой атаке. Анонимный сервер не может аутентифицировать клиента. Если сервер аутентифицирован, то его сообщение сертификации должно обеспечить верную сертификационную цепочку, ведущую к приемлемому центру сертификации. Проще говоря, аутентифицированный клиент должен предоставить допустимый сертификат серверу. Каждая сторона отвечает за проверку того, что сертификат другой стороны еще не истек и не был отменен. Главная цель процесса обмена ключами — это создание секрета клиента (pre_master_secret), известного только клиенту и серверу. Секрет (pre_master_secret) используется для создания общего секрета (master_secret). Общий секрет необходим для того чтобы создать сообщение для проверки сертификата, ключей шифрования, секрета MAC (message authentication code) и сообщения «finished». При посылке верного сообщения «finished», тем самым стороны докажут что они знают верный секрет (pre_master_secret).

Начиная с 2018 года SSL сертификат должен быть установлен на каждом сайте. Если вы запускаете новый сайт, даже это если это просто информационный сайт или блог, на нем должен быть установлен SSL сертификат. В Google наличие или отсутствие SSL сертификата (протокола HTTPS) является одним из факторов ранжирования вашего сайта.

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

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

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

Центр сертификации или Удостоверяющий центр (англ. Certification authority, CA) — это организация или подразделение организации, которая выпускает сертификаты ключей электронной цифровой подписи, это компонент глобальной службы каталогов, отвечающий за управление криптографическими ключами пользователей. Открытые ключи и другая информация о пользователях хранится центрами сертификации в виде цифровых сертификатов, имеющих следующую структуру:

Выделяют различные виды SSL- сертификатов в зависимости от типа проверки:

Wildcard SSL — сертификаты — это сертификаты, защищающие не только основной домен(ваш_домен.ру), но и поддомены(www.ваш_домен.ру, ssl.ваш_домен.ру, secure.ваш_домен.ру и т.д.). Может использоваться на веб-сервере и почтовом сервере. При генерации запроса на Wildcard сертификат в качестве Common Name (CN) используйте «*.domain.com», где domain.com — это ваше доменное имя.

Бесплатный сертификат (центр выдачи сертификатов) должен поддерживаться браузером, иначе проще генерировать самому. Главное сертификат правильно создать. При правильном создании самоподписанного сертификата будет выводится только ошибка он невозможности проверить сертификат, например Mozilla Thunderbird почта: «Верификация сертификата не возможна — выдавшая сертификат сторона ненадежна».

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

Бесплатные центры сертификации SSL:

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

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

Если вы решили самостоятельно выпускать сертификаты, то первым делом вам нужно создать сертификат вашего собственного центра сертификации. Для этого используем программу CA.pl входящую в поставку Как пользоваться OpenSSL, предварительно отредактируем конфигурационный файл openssl.cnf.

# cp /etc/ssl/openssl.cnf /etc/ssl/openssl.cnf.orig
# nano openssl.cnf
...
[ CA_default ]

dir             = ./demoCA
# cacert.pem- Это открытый ключ центра сертификации. Он должен находиться в корневых хранилищах ваших хостов,
# чтобы они могли проверить родпись в открытом сертификате (например, Postfix).
certificate     = $dir/cacert.pem
# cakey.pem - это секретный ключ центра сертификации. Он должен быть хорошо защищен,
# доступ к нему на чтение и запись должен иметь только администратор центра сертификации.
private_key     = $dir/private/cakey.pem
# Время жизни сертификата (по умолчанию 1 год)
default_days    = 1095
[ req ]
# длина RSA ключа (по умолчанию 1024 bit). Длину ключа можете настроить по своему усмотрению.
default_bits            = 1024
[ req_distinguished_name ]
countryName_default             = UA
0.organizationName_default      = Example INC
stateOrProvinceName_default     = Example
organizationalUnitName_default  = Example

# В подавляющем большинстве случае должно соответствовать полному доменному имени хоста.
# Common Name (eg, your name or your server's hostname) []:OpenVPN-CA

commonName                      = Common Name (eg, YOUR name)
commonName_default              = mail.example.com
...
# /usr/lib/ssl/misc/CA.pl -newca

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

Файл postfix_public_cert.pem — это сертификат, который будет выслаться клиентам на начальной стадии установления TLS-соединения. Вместе с этим сертификатом Postfix будет также высылать подпись из файла postfix_private_key.pem. Хост-получатель при проверке сертификата postfix_public_cert.pem выполнит определенные вычисления на основании подписи, сформированной Postfix с использованием секретного ключа, и подписи в CA-сертификате. Результат должен соответствовать подписи в postfix_public_cert.pem. В случае несовпадения открытый ключ будет признан фальшивым и соединение немедленно завершится.

TLS- шифрование трафика предназначено для обеспечения защиты трафика при взаимодействии клиентов, находящихся за пределами доверенных сетей, с нашим сервером, а также при взаимодействии нашего сервера c другими почтовыми серверами. Для TLS-шифрования трафика мы будем использовать функции OpenSSL и самоподписной доверенный сертификат X.509. Для создания самоподписного доверенного сертификата необходимо выполнить команду:

# mkdir /etc/postfix/certs
# cd /etc/postfix/certs
# openssl req -new -nodes -x509 -out smtpd.pem -keyout smtpd.pem -days 3650
# chmod 644 smtpd.pem

В процессе выполнения команды на экран будут выданы запросы о вводе таких параметров как: Country Name, State or Province Name; Locality Name; Organization Name; Organizational Unit Name; Common Name; Email Address. Самым важным параметром является значение Common Name. В нашем случае оно должно совпадать с FQDN сервера, по которому клиенты будут обращаться к нему для отправки почты. Чтобы не вводить эти данные вручную каждый раз при создании сертификата можно отредактировать файл /etc/ssl/openssl.cnf.

После генерации сертификата необходимо включить поддержку TLS в файле main.cf:

smtp_use_tls = yes
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_tls_auth_only = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/certs/smtpd.pem              
smtpd_tls_cert_file = /etc/postfix/certs/smtpd.pem              
smtpd_tls_CAfile = /etc/postfix/certs/smtpd.pem
smtpd_tls_CApath = /etc/ssl/certs
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom

Указанные параметры имеют следующие значения:

Администраторы сервера выбирают, какой порт будут использовать клиенты для ретрансляции исходящей почты — 25 или 587. Спецификации и многие сервера поддерживают и тот, и другой порты. Хотя некоторые сервера поддерживают порт 465 для безопасного SMTP, но предпочтительнее использовать стандартные порты и ESMTP-команды, если необходима защищенная сессия между клиентом и сервером.

Отличия портов 25, 465, 587. По 465 порту соединение сразу должно открываться по TLS/SSL. С 587 работают как с 25: соединение в открытом виде, а для включения шифрования подаётся команда STARTTLS, если сервер заявил о такой возможности в ответ на EHLO от клиента. smtps (465 порт) фича более старая, starttls — более новая и, понятно, более гибкая.

Для того, чтобы Postfix принимал TLS- соединения на специальный порт (465/SMTPS, а не 25/SMTP), в файле /usr/local/etc/postfix/master.cf необходимо раскомментировать строки:

smtps inet n - n - - smtpd
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes

Не забудьте, что Ваш брандмауэр должен разрешать прохождение TCP-трафика на адреса нужных интерфейсов сервера порт 465, поэтому добавьте соответствующие правила, если они отсутствуют. На этом добавление поддержки TLS-шифрования трафика к Postfix заканчивается. Остается перезапустить Postfix и начать пользоваться аутентификацией SMTP и TLS-шифрованием трафика.

# mkdir /etc/dovecot/certs
# cd /etc/dovecot/certs
# openssl req -new -nodes -x509 -out imapd.pem -keyout imapd.pem -days 3650
# chmod 644 imapd.pem

Правим конфигурационный файл Настройка сервера Dovecot и Postfix.

# nano /etc/dovecot/dovecot.conf
...
## SSL settings
ssl_cert_file = /etc/dovecot/certs/imapd.pem
ssl_key_file = /etc/dovecot/certs/imapd.pem
ssl_ca_file = /etc/dovecot/certs/imapd.pem
...

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

openssl s_client -connect 10.26.95.225:443 -showcerts

Как создать собственный центр сертификации SSL для локальной разработки HTTPS

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

Почему HTTPS локально?

Почему бы просто не использовать обычный HTTP локально? Потому что, если ваш рабочий сайт поддерживает только HTTPS, а вы разрабатываете локально по обычному протоколу HTTP, ваша среда разработки и производственная среда не так похожи, как могли бы быть.Например, моя среда разработки для этого сайта (Deliciousbrains.com) работает как сервер Ubuntu на виртуальной машине (ВМ) VMware на его Mac. Производственный сайт представляет собой сервер Ubuntu, работающий на Linode, с почти идентичной конфигурацией.

Вы определенно хотите, чтобы ваша среда разработки максимально соответствовала производственной среде.
Если этого не происходит, вы приглашаете больше проблем, обнаруживаемых в производственной среде, которых не было в разработке. Запуск HTTP, когда ваш рабочий сайт поддерживает только HTTPS, определенно является ненужным риском.

Однако попытка заставить сертификат SSL работать с вашим локальным сервером — отстой, если вы не используете инструмент, который справляется с этим за вас, например Valet.

Если вы когда-либо пытались запустить сайт HTTPS локально, вы, вероятно, видели в Chrome что-то вроде следующего:

Временным решением было создание самозаверяющего сертификата и его использование. MAMP Pro делает это за вас и был моим помощником на протяжении многих лет. К сожалению, это больше невозможно.Современный подход — стать вашим собственным центром сертификации (CA)!

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

Чтобы запросить сертификат SSL у такого центра сертификации, как Verisign или GoDaddy, вы отправляете им запрос на подпись сертификата (CSR), и они дают вам взамен сертификат, который они подписали с использованием своего корневого сертификата и закрытого ключа. Все браузеры имеют копию (или доступ к копии из операционной системы) корневого сертификата Verisign, поэтому браузер может проверить, был ли ваш сертификат подписан доверенным центром сертификации.

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

Стать (крошечным) центром сертификации

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

  openssl genrsa -des3 -out myCA.key 2048
  

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

  Создание закрытого ключа RSA, модуль длиной 2048 бит
.................................................. ............... +++
..................................... +++
е - 65537 (0x10001)
Введите парольную фразу для myCA.key:
Проверка - введите парольную фразу для myCA.key:
  

Затем мы генерируем корневой сертификат:

  openssl req -x509 -new -nodes -key myCA.key -sha256 -days 1825 -out myCA.pem
  

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

  Введите парольную фразу для myCA.key:
Вас вот-вот попросят ввести информацию, которая будет включена
в ваш запрос на сертификат.
То, что вы собираетесь ввести, называется отличительным именем или DN.
Поля довольно много, но можно оставить пустыми.
Для некоторых полей будет значение по умолчанию,
Если вы введете '.', поле останется пустым.
-----
Название страны (двухбуквенный код) [AU]: CA
Название штата или провинции (полное название) [Some-State]: Nova Scotia
Название населенного пункта (например, город) []: Truro
Название организации (например, компания) [Internet Widgits Pty Ltd]: Delicious Brains Inc.
Название организационной единицы (например, раздел) []:
Общее имя (например, полное доменное имя сервера или ВАШЕ имя) []: Delicious Brains
Адрес электронной почты []: [email protected]
  

Теперь у вас должно быть два файла: myCA.key (ваш закрытый ключ) и myCA.pem (ваш корневой сертификат).

🎉 Поздравляю, теперь вы CA. Вроде.

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

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

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

Добавление корневого сертификата в связку ключей macOS

Через интерфейс командной строки
  sudo security add-trust-cert -d -r trustRoot -k "/Library/Keychains/System.keychain" myCA.pem
  
Через пользовательский интерфейс
  1. Откройте приложение Связка ключей macOS
  2. Перейдите в Файл> Импортировать элементы…
  3. Выберите файл секретного ключа (например, myCA.pem)
  4. Найдите все, что вы ответили, как общее имя имя выше
  5. Дважды щелкните корневой сертификат в списке
  6. Разверните раздел Trust
  7. Измените При использовании этого сертификата: установите флажок «Всегда доверять»
  8. Закройте окно сертификата
  9. Он попросит вас ввести пароль (или отсканировать палец), сделайте это
  10. 🎉 Празднуйте!

Добавление корневого сертификата в iOS

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

  1. Отправьте корневой сертификат себе по электронной почте, чтобы вы могли получить к нему доступ на своем устройстве iOS.
  2. Щелкните вложение в электронном письме на своем устройстве iOS
  3. Перейдите в приложение настроек и нажмите «Профиль загружен» в верхней части
  4. Нажмите установить в правом верхнем углу
  5. После установки нажмите «Закрыть» и вернитесь на главную страницу настроек.
  6. Перейдите в «Общие»> «О программе».
  7. Прокрутите вниз и нажмите «Настройки доверия к сертификату».
  8. Включите корневой сертификат в разделе «ВКЛЮЧИТЬ ПОЛНОЕ ДОВЕРИЕ ДЛЯ КОРНЕВЫХ СЕРТИФИКАТОВ».

Создание сертификатов, подписанных ЦС для ваших сайтов разработки

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

  openssl genrsa -out dev.deliciousbrains.com.key 2048
  

Затем мы создаем CSR:

  openssl req -new -key dev.deliciousbrains.com.key -out dev.deliciousbrains.com.csr
  

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

  Вас попросят ввести информацию, которая будет включена
в ваш запрос на сертификат.То, что вы собираетесь ввести, называется отличительным именем или DN.
Поля довольно много, но можно оставить пустыми.
Для некоторых полей будет значение по умолчанию,
Если вы введете ".", Поле останется пустым.
-----
Название страны (двухбуквенный код) [AU]: CA
Название штата или провинции (полное название) [Some-State]: Nova Scotia
Название населенного пункта (например, город) []: Truro
Название организации (например, компания) [Internet Widgits Pty Ltd]: Delicious Brains Inc.
Название организационной единицы (например, раздел) []:
Общее имя (e.грамм. полное доменное имя сервера или ВАШЕ имя) []: Mergebot
Адрес электронной почты []: [email protected]

Пожалуйста, введите следующие "дополнительные" атрибуты
для отправки с запросом на сертификат
Пароль вызова []:
Необязательное название компании []:
  

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

Файл конфигурации необходим для определения расширения альтернативного имени субъекта (SAN), которое определено в этом разделе (т.е.е. продление) сертификата:

Файл конфигурации (dev.deliciousbrains.com.ext) содержал следующее:

  AuthorityKeyIdentifier = идентификатор ключа, эмитент
basicConstraints = CA: FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = dev.deliciousbrains.com
  

Мы будем запускать команду openssl x509 , потому что, насколько я понимаю, команда x509 необходима для подписания с помощью корневого сертификата и закрытого ключа.Я нашел этот пример конфигурационного файла в Stack Overflow, и, похоже, он работает.

Теперь запускаем команду для создания сертификата:

  openssl x509 -req -in dev.deliciousbrains.com.csr -CA myCA.pem -CAkey myCA.key -CAcreateserial \
-out dev.deliciousbrains.com.crt -days 825 -sha256 -extfile dev.deliciousbrains.com.ext
  

Теперь у меня есть три файла: dev.deliciousbrains.com.key (закрытый ключ), dev.deliciousbrains.com.csr (запрос на подпись сертификата) и dev.Deliciousbrains.com.crt (подписанный сертификат).

Теперь я могу настроить свой веб-сервер с закрытым ключом и сертификатом. Если вы используете сервер Linux, вы можете использовать инструкции из нашей серии Установка WordPress на Ubuntu 20.04. Если вы используете MAMP, вы можете выбрать файлы сертификата и ключей с помощью пользовательского интерфейса:

К сожалению, MAMP (проверенный с версией 5.7) не создает сертификаты SSL с ЦС, поэтому вам придется использовать ручной метод на данный момент.

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

Скрипт оболочки

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

  #! / Bin / sh

если ["$ #" -ne 1]
потом
  echo "Использование: необходимо указать домен"
  выход 1
фи

ДОМЕН = 1 доллар США

cd ~ / certs

openssl genrsa -out $ DOMAIN.key 2048
openssl req -new -key $ DOMAIN.key -out $ DOMAIN.csr

cat> $ DOMAIN.ext << EOF
AuthorityKeyIdentifier = keyid, эмитент
basicConstraints = CA: FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = $ ДОМЕН
EOF

openssl x509 -req -in $ DOMAIN.csr -CA ../myCA.pem -CAkey ../myCA.key -CAcreateserial \
-out $ DOMAIN.crt -days 825 -sha256 -extfile $ DOMAIN.ext
  

Заключение

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

Вы пробовали создать собственный центр сертификации? Вы работаете локально с HTTPS? Позвольте мне знать в комментариях ниже.

Создание

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 CSR и установка сертификата SSL

Руководства по настройке создания CSR и установки SSL

Настройка SSL-сертификатов

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

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

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

Настройка сертификата SSL

Установка SSL

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

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

Общие платформы:

Полный список:

Создание CSR

Создание CSR - это первый шаг к настройке SSL на вашем сервере или устройстве с поддержкой SSL.

Созданный вами файл .csr будет отправлен нам во время онлайн-заказа.
и используется для создания файла сертификата SSL.

Общие платформы:

Полный список:

Шаги по запросу и установке сертификата SSL

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

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

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

Настройка сертификатов SSL - Руководство по настройке SSL

Узнайте, как настроить сертификаты SSL на всех основных серверных платформах.

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

Обзор

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

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

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

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

Шаг 1. Создайте приват
Ключ

Набор инструментов openssl используется для создания
Закрытый ключ RSA и CSR (запрос на подпись сертификата) . Его также можно использовать
для создания самозаверяющих сертификатов, которые можно использовать в целях тестирования или внутренних
использование.

Первый шаг - создать закрытый ключ RSA.
Этот ключ представляет собой 1024-битный ключ RSA, который зашифрован с использованием Triple-DES и хранится в PEM.
формат, чтобы его можно было читать как текст ASCII.

openssl genrsa -des3 -out server.key 1024

Создание закрытого ключа RSA, модуль длиной 1024 бита
......................... ................................ ++++++
........ +++ +++
e is 65537 (0x10001)
Введите парольную фразу PEM:
Проверка пароля - Введите парольную фразу PEM:

Шаг 2. Создайте CSR (запрос на подпись сертификата)

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

Во время генерации CSR вам будет предложено ввести несколько
кусочки информации. Это атрибуты сертификата X.509.Один из
запросы будут для «Общее имя (например, ВАШЕ имя)». Важно, чтобы это поле было
заполняется полным доменным именем сервера, который будет защищен SSL. Если
защищаемый веб-сайт будет https://public.akadia.com, затем введите
public.akadia.com в этом запросе. Команда для создания CSR выглядит следующим образом:

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

Название страны (двухбуквенный код) [ГБ]: CH
Название штата или провинции (полное имя)
[Berkshire]: Bern
Название населенного пункта (например, город) [Newbury]: Oberdiessbach
Название организации (например, компания) [My Company Ltd]: Akadia
AG

Название организационной единицы (например, раздел) []: Информация
Технология

Общее имя (например, ваше имя или имя хоста вашего сервера)
[]: общедоступных.akadia.com
Адрес электронной почты []: martin dot zahn at akadia dot ch
Введите следующие «дополнительные» атрибуты
, которые будут отправлены вместе с запросом сертификата
Пароль вызова []:
Необязательное название компании [] :

Шаг 3. Удалите парольную фразу из ключа

Одним из нежелательных побочных эффектов закрытого ключа с парольной фразой является ,
Apache будет запрашивать пароль каждый раз при запуске веб-сервера
.Очевидно
это не обязательно удобно, так как кто-то не всегда будет рядом, чтобы ввести
фраза-пароль, например, после перезагрузки или сбоя. mod_ssl включает возможность использовать
внешняя программа вместо встроенного диалогового окна парольной фразы, однако это не
обязательно самый безопасный вариант. Можно удалить Triple-DES
шифрование с помощью ключа
, тем самым больше не нужно вводить парольную фразу. Если
закрытый ключ больше не зашифрован, важно, чтобы этот файл мог читать только
пользователь root! Если ваша система когда-либо будет взломана, и третья сторона получит ваш незашифрованный
закрытый ключ, соответствующий сертификат необходимо будет отозвать.С учетом сказанного,
используйте следующую команду, чтобы удалить парольную фразу из ключа:

cp server.key server.key.org
openssl rsa -in server.key.org -out server.key

Во вновь созданном файле server.key больше нет парольной фразы.

-rw-r - r-- 1 root root 745 29 июня, 12:19
server.csr
-rw-r - r-- 1 корень root 891 29 июня 13:22 server.key
-rw-r - r-- 1 корень root 963 29 июня 13:22 server.key.org

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

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

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

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

Подпись ok
subject = / C = CH / ST = Bern / L = Oberdiessbach / O = Akadia AG / OU = Information
Technology / CN = public.akadia.com / Email = martin dot zahn at akadia dot ch
Получение закрытого ключа

Шаг 5: Установка закрытого ключа и сертификата

Когда установлен Apache с mod_ssl, он создает несколько каталогов в Apache
config каталог.Расположение этого каталога будет отличаться в зависимости от того, как был Apache.
составлен.

cp server.crt /usr/local/apache/conf/ssl.crt
cp server.key /usr/local/apache/conf/ssl.key

Шаг 6. Настройка виртуальных хостов с поддержкой SSL

SSLEngine на
SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt
SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/server.ключ
SetEnvIf User-Agent ". * MSIE. *" nokeepalive ssl-unclean-shutdown
CustomLog logs / ssl_request_log \
"% t% h% {SSL_PROTOCOL} x% {SSL_CIPHER} x \"% r \ "% b"

Шаг 7. Перезапустите Apache и протестируйте

/etc/init.d/httpd stop
/etc/init.d/httpd stop

https://public.akadia.com

Пример: сертификат SSL - создание ключа и CSR

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


Когда вы настраиваете Tableau Server для использования шифрования Secure Sockets Layer (SSL), это помогает обеспечить безопасный доступ к серверу и данные, передаваемые между Tableau Server и Tableau Desktop, защищены.

Ищете Tableau Server в Linux? См. Пример: Сертификат SSL - Создание ключа и CSR (ссылка открывается в новом окне).

Tableau Server использует Apache, который включает OpenSSL (ссылка открывается в новом окне). Вы можете использовать набор инструментов OpenSSL для создания файла ключа и запроса на подпись сертификата (CSR), которые затем можно использовать для получения подписанного сертификата SSL.

Шаги по созданию ключа и CSR

Чтобы настроить Tableau Server на использование SSL, у вас должен быть сертификат SSL. Чтобы получить сертификат SSL, выполните следующие действия:

  1. Установите переменную среды конфигурации OpenSSL (необязательно).
  2. Создайте ключевой файл.
  3. Создайте запрос на подпись сертификата (CSR).
  4. Отправьте CSR в центр сертификации (CA), чтобы получить сертификат SSL.
  5. Используйте ключ и сертификат, чтобы настроить Tableau Server на использование SSL.

Дополнительную информацию можно найти на странице часто задаваемых вопросов по SSL (ссылка открывается в новом окне) на веб-сайте Apache Software Foundation.

Настроить сертификат для нескольких доменных имен

Tableau Server позволяет использовать SSL для нескольких доменов. Чтобы настроить эту среду, вам необходимо изменить файл конфигурации OpenSSL, openssl.conf, и настроить сертификат альтернативного имени субъекта (SAN) на сервере Tableau.См. Для сертификатов SAN: измените файл конфигурации OpenSSL ниже.

Установите переменную среды конфигурации OpenSSL (необязательно)

Чтобы избежать использования аргумента -config при каждом использовании openssl.exe, вы можете использовать переменную среды OPENSSL_CONF , чтобы убедиться, что используется правильный файл конфигурации и что все изменения конфигурации, сделанные в последующих процедурах в этой статье, дают ожидаемые результаты. (например, вы должны установить переменную среды, чтобы добавить SAN к вашему сертификату).

Откройте командную строку от имени администратора и выполните следующую команду:

установить OPENSSL_CONF = c: \ Program Files \ Tableau \ Tableau Server \ packages \ apache. \ conf \ openssl.cnf

Примечание : При установке переменной среды конфигурации Open SSL не заключайте путь к файлу в кавычки.

Сгенерировать ключ

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

  1. Откройте командную строку от имени администратора и перейдите в каталог Apache для Tableau Server. Например, выполните следующую команду:


    компакт диск
    C: \ Program Files \ Tableau \ Tableau Server \ packages \ apache.<код_версии> \ bin

  2. Выполните следующую команду, чтобы создать файл ключа:

    openssl.exe genrsa -out .key 4096

    Примечание: Эта команда использует длину ключа 4096 бит.Вы должны выбрать длину в битах не менее 2048 бит, потому что обмен данными, зашифрованный с более короткой длиной в битах, менее безопасен. Если значение не указано, используется 512 бит.

Создайте запрос на подпись сертификата для отправки в центр сертификации

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

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

  1. Выполните следующую команду, чтобы создать файл запроса на подпись сертификата (CSR):

    openssl.exe req -new -key yourcertname.key -out yourcertname.csr

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

    • Сообщение об ошибке о невозможности загрузки информации о конфигурации. В этом случае повторите команду, указанную выше, со следующим параметром: -config.. \ conf \ openssl.cnf .

    • Предупреждение о том, что каталог / usr / local / ssl не найден. Этот каталог не существует в Windows, и вы можете просто проигнорировать это сообщение. Файл успешно создан.

    Чтобы установить переменную среды конфигурации OpenSSL, см. Раздел Установка переменной среды конфигурации OpenSSL (необязательно) в этой статье.

  2. При появлении запроса введите необходимую информацию.

    Примечание: Для Common Name введите имя сервера Tableau. Имя сервера Tableau - это URL-адрес, который будет использоваться для доступа к серверу Tableau. Например, если вы перейдете на сервер Tableau, набрав tableau.example.com в адресной строке браузера, тогда tableau.example.com - это общепринятое имя. Если общее имя не соответствует имени сервера, при попытке браузера или Tableau Desktop подключиться к Tableau Server возникнут ошибки.

Отправьте CSR в центр сертификации, чтобы получить сертификат SSL

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

Используйте ключ и сертификат для настройки Tableau Server

Когда у вас есть и ключ, и сертификат от CA, вы можете настроить Tableau Server для использования SSL. Инструкции см. В разделе Настройка внешнего SSL.

Для сертификатов SAN: измените файл конфигурации OpenSSL

.

В стандартной установке OpenSSL некоторые функции по умолчанию не включены.Чтобы использовать SSL с несколькими доменными именами, перед созданием CSR выполните следующие действия, чтобы изменить файл openssl.cnf .

  1. Откройте проводник Windows и перейдите в папку Apache conf для Tableau Server.

    Например: C: \ Program Files \ Tableau \ Tableau Server \ <код_версии> \ apache \ conf

  2. Открыть openssl.cnf в текстовом редакторе и найдите следующую строку: req_extensions = v3_req

    Эта строка может быть закомментирована знаком решетки (#) в начале строки.

    Если строка закомментирована, раскомментируйте ее, удалив # и пробел символов с начала строки.

  3. Перейти в раздел файла [v3_req] .Первые несколько строк содержат следующий текст:

    # Расширения для добавления к запросу сертификата
    basicConstraints = CA: FALSE
    keyUsage = nonRepudiation, digitalSignature, keyEncipherment

    После строки keyUsage вставьте следующую строку:

    subjectAltName = @alt_names

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

    1. Добавьте cRLSign и keyCertSign в строку keyUsage , чтобы она выглядела следующим образом: keyUsage = nonRepudiation, digitalSignature, keyEncipherment, cRLSign, keyCertSign

    2. После строки keyUsage добавьте следующую строку: subjectAltName = @alt_names

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

    DNS.1 = [домен1]
    DNS.2 = [домен2]
    DNS.3 = [и т. Д.]

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

  5. Сохраните и закройте файл.

  6. Выполните действия, описанные в разделе «Создание запроса на подпись сертификата для отправки в центр сертификации» выше.

iis - Как создать самозаверяющий сертификат для доменного имени для разработки?

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

Создайте самозаверяющий сертификат в Windows 10 и ниже

Не используйте makecert.exe. Microsoft устарела.
Современный способ использует команду Powershell.

Windows 10:

Откройте Powershell с правами администратора:

  Новый-SelfSignedCertificate -DnsName "*.dev.local "," dev.local "," localhost "-CertStoreLocation cert: \ LocalMachine \ My -FriendlyName" Dev Cert * .dev.local, dev.local, localhost "-NotAfter (Get-Date) .AddYears (15 )
  

Windows 8, Windows Server 2012 R2:

В Powershell в этих системах параметры -FriendlyName и -NotAfter не существуют. Просто удалите их из командной строки выше.
Откройте Powershell с правами администратора:

  Новый-SelfSignedCertificate -DnsName "*.dev.local "," dev.local "," localhost "-CertStoreLocation cert: \ LocalMachine \ My
  

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

Старые версии Windows:

Моя рекомендация для более старых версий Windows - создать сертификат на машине Win 10, экспортировать его в файл .PFX с помощью экземпляра mmc (см. «Доверять сертификату» ниже) и импортировать его в хранилище сертификатов на целевой машине с помощью старая ОС Windows.Чтобы импортировать сертификат, НЕ щелкайте его правой кнопкой мыши. Хотя в контекстном меню есть пункт «Импортировать сертификат», все мои попытки использовать его на Win Server 2008 не удалось. Вместо этого откройте другой экземпляр mmc на целевой машине, перейдите к «Сертификаты (локальный компьютер) / Персональные / Сертификаты» щелкните правой кнопкой мыши среднюю панель и выберите Все задачи → Импорт.

Полученный сертификат

Обе указанные выше команды создают сертификат для доменов localhost, и *.dev.local .
Версия Win10 дополнительно имеет срок жизни 15 лет и читаемое отображаемое имя «Dev Cert * .dev.local, dev.local, localhost».

Обновление: Если вы укажете несколько записей имени хоста в параметре -DnsName (как показано выше), первая из этих записей станет темой домена (общее имя AKA). Полный список всех записей имен хостов будет храниться в поле Subject Alternative Name (SAN) сертификата. (Спасибо @BenSewards за указание на это.)

После создания сертификат будет немедленно доступен в любых HTTPS-привязках IIS (инструкции ниже).

Доверяйте сертификату

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

Откройте mmc.exe, Файл → Добавить / удалить оснастку → выберите «Сертификаты» в левом столбце → Добавить → выберите «Учетная запись компьютера» → Далее → «Локальный компьютер»... »→ Готово → OK

В левом столбце выберите «Сертификаты (локальный компьютер) / Личный / Сертификаты».
Найдите только что созданный сертификат (в Win 10 может помочь столбец «Понятное имя»).
Выберите этот сертификат и нажмите Ctrl-C, чтобы скопировать его в буфер обмена.

В левом столбце выберите «Сертификаты (локальный компьютер) / Доверенные корневые центры сертификации / Сертификаты».
Нажмите Ctrl-V, чтобы вставить сертификат в это хранилище.
Сертификат должен появиться в списке доверенных корневых центров и теперь считается заслуживающим доверия.

Использование в IIS

Теперь вы можете перейти в диспетчер IIS, выбрать привязки локального веб-сайта → Добавить → https → ввести имя хоста в форме myname.dev.local (ваш сертификат действителен только для * .dev.local ) и выберите новый сертификат → ОК.

Добавить в хосты

Также добавьте имя вашего хоста в C: \ Windows \ System32 \ drivers \ etc \ hosts:

  127.0.0.1 myname.dev.local
  

Счастливый

Теперь Chrome и IE должны рассматривать сертификат как заслуживающий доверия и загружать ваш веб-сайт, когда вы открываете https: // myname.dev.local .

Firefox поддерживает собственное хранилище сертификатов. Чтобы добавить сюда свой сертификат, вы должны открыть свой веб-сайт в FF и добавить его в исключения, когда FF предупреждает вас о сертификате.

Для браузера Edge могут потребоваться дополнительные действия (см. Ниже).

Сертификат проверки

Для тестирования сертификатов лучше всего подходит Firefox. (Поверьте, я сам фанат Chrome, но в данном случае FF лучше.)

Вот причины:

  • Firefox использует свой собственный кеш SSL, который очищается при смене-перезагрузке.Таким образом, любые изменения сертификатов ваших локальных веб-сайтов будут немедленно отражены в предупреждениях FF, в то время как другим браузерам может потребоваться перезапуск или ручная очистка кеша SSL Windows.
  • Также FF дает вам несколько ценных советов для проверки действительности вашего сертификата: Нажмите «Дополнительно», когда FF покажет предупреждение о своем сертификате. FF покажет вам короткий текстовый блок с одним или несколькими возможными предупреждениями в центральных строках текстового блока:

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

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

Сертификат недействителен на имя ...

Это предупреждение показывает, что вы сделали что-то не так. Домен (подстановочный знак) вашего сертификата не соответствует домену вашего веб-сайта. Проблема должна быть решена либо путем изменения (под) домена вашего веб-сайта, либо путем выпуска нового соответствующего сертификата.Фактически вы можете добавить исключение в FF, даже если сертификат не совпадает, но вы никогда не получите зеленый символ замка в Chrome с такой комбинацией.

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

Какой (под) шаблон домена мне выбрать для разработки?

В приведенной выше команде New-SelfSignedCertificate мы использовали подстановочный домен *.dev.local .

Вы можете подумать: а почему бы не использовать * .local ?

Простая причина: использование подстановочного знака недопустимо.
Подстановочные сертификаты должны содержать хотя бы буквальное доменное имя второго уровня. Звездочка (*) допускается только с третьего уровня вверх.

Итак, домены вида xyz.local подходят, когда вы разрабатываете по HTTP, и вам не нужны сертификаты. Но если вы используете этот шаблон домена с HTTPS, вам придется выдавать новый соответствующий сертификат для каждого нового проекта, который вы запускаете.Лучше использовать домены вида xyz.dev.local и единый сертификат подстановки для * .dev.local .

Важные примечания сбоку:

  • Допустимые домены хоста могут содержать ТОЛЬКО буквы от a до z, цифры, дефисы и точки. Знаки подчеркивания запрещены! Некоторые браузеры действительно придирчивы об этом подробно и могут дать вам трудное время, когда они упорно отказываются соответствовать вашему домену motör_head.dev.local к вашему шаблону шаблону * .dev.local .Они будут соответствовать, когда вы переключитесь на motoer-head.dev.local .
  • Подстановочный знак в сертификате будет соответствовать только ОДНОЙ метке (= раздел между двумя точками) в домене, никогда больше. * .dev.local соответствует myname.dev.local , но НЕ other.myname.dev.local !
  • Многоуровневые подстановочные знаки ( *. *. Dev.local ) НЕ возможны в сертификатах.
    Таким образом, other.myname.dev.local может быть покрыт только шаблоном формы *.myname.dev.local . В результате лучше не использовать доменную часть четвертого уровня. Поместите все свои вариации в часть третьего уровня. Таким образом, вы получите единый сертификат для всех ваших сайтов разработчиков.

Проблема с Edge

На самом деле речь не идет о самозаверяющих сертификатах, но все же связано со всем процессом:
После выполнения вышеуказанных шагов Edge может не отображать какого-либо содержимого , когда вы открываете myname.dev.local .
Причина - характерная особенность сетевого управления Windows 10 для современных приложений, называемая «Изоляция сети».

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

  CheckNetIsolation LoopbackExempt -a -n = Microsoft.MicrosoftEdge_8wekyb3d8bbwe
  

Более подробную информацию о Edge и Network Isolation можно найти здесь:
https://blogs.msdn.microsoft.com/msgulfcommunity/2015/07/01/how-to-debug-localhost-on-microsoft-edge/

iis - Как создать самозаверяющий сертификат для localhost?

В LAN (локальной сети) у нас есть серверный компьютер, здесь с именем xhost, работающий под управлением Windows 10, IIS активирован как WebServer.Мы должны получить доступ к этому компьютеру через браузер, такой как Google Chrome, не только с localhost через https: // localhost / с самого сервера, но также с других хостов в локальной сети с URL-адресом https: // xhost /:

 
https: // localhost /
https: // xhost /
https: //xhost.local/
...
  

При таком способе доступа у нас здесь не полное доменное имя, а только имя локального компьютера xhost.

или из WAN:

 
https: // dev.example.org/
...
  

Замените xhost на свое настоящее имя локального компьютера.

Ни одно из вышеперечисленных решений не может нас удовлетворить. После нескольких дней попыток мы приняли решение openssl.exe. Мы используем 2 сертификата - сертификат CA (самосертификат центра сертификации) RootCA.crt и xhost.crt, сертифицированный первым. Мы используем PowerShell.

1. Создайте безопасный каталог и перейдите в него:

  cd C: \ users \ so \ crt  

2. Создайте RootCA.pem, RootCA.key и RootCA.crt как самосертифицированный центр сертификации:

 
openssl req -x509 -nodes -new -sha256 -days 10240 -newkey rsa: 2048 -keyout RootCA.key -out RootCA.pem -subj "/ C = ZA / CN = RootCA-CA"
openssl x509 -outform pem -in RootCA.pem -out RootCA.crt
  

3. сделать запрос на сертификацию: xhost.key, xhost.csr:

  C: Страна
ST: Государство
L: населенный пункт (город)
O: Название организации
Организационная единица
CN: общее имя

    
  
 
openssl req -new -nodes -newkey rsa: 2048 -keyout xhost.key -out xhost.csr -subj "/ C = ZA / ST = СВОБОДНОЕ СОСТОЯНИЕ / L = Национальный парк Голден-Гейт Хайлендс / O = WWF4ME / OU = xhost.home / CN = xhost.local"
  

4. Получите сертификат xhost.crt от RootCA.pem:

 
openssl x509 -req -sha256 -days 1024 -in xhost.csr -CA RootCA.pem -CAkey RootCA.key -CAcreateserial -extfile domains.ext -out xhost.crt
  

с файлом extfile domains.ext, определяющим множество защищенных способов доступа к веб-сайту сервера:

  AuthorityKeyIdentifier = идентификатор ключа, эмитент
basicConstraints = CA: FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = локальный
DNS.2 = xhost
DNS.3 = xhost.local
DNS.4 = dev.example.org
DNS.5 = 192.168.1.2
  

5. Сделайте xhost.pfx PKCS # 12,

объединяет как частный xhost.key, так и сертификат xhost.crt, позволяя импортировать в iis. На этом шаге запрашивается пароль, пожалуйста, оставьте его пустым, нажав клавишу [RETURN] (без пароля):

 
openssl pkcs12 -export -out xhost.pfx -inkey xhost.key -in xhost.crt
  

6. импорт xhost.pfx в iis10

установлен на компьютере xhost (здесь localhost).и перезапустите службу IIS.

  IIS10 Руководство для служб Интернета (IIS) (% windir% \ system32 \ inetsrv \ InetMgr.exe)
  

7. Свяжите ssl с сертификатом

xhost.local на порт 443.

Перезапустите службу IIS.

8. Импортируйте RootCA.crt в

доверенных корневых центров сертификации

через Google Chrome на любом компьютере, который будет иметь доступ к веб-сайту https: // xhost /.

\ Google Chrome /… / Настройки
/ [Дополнительно] / Конфиденциальность и безопасность / Безопасность / Управление сертификатами

Импорт RootCA.crt

Браузер покажет это действительное дерево сертификатов:

 
RootCA-CA
  | _____ xhost.local
  

Ошибка сертификата не появится через LAN, даже через WAN по https://dev.example.org.

Вот весь файл Powershell Script socrt.ps1 для генерации всех необходимых файлов сертификатов из нуля:

 
#
# Создать:
# RootCA.pem, RootCA.key RootCA.crt
#
# xhost.ключ xhost.csr xhost.crt
# xhost.pfx
#
# created 15-EEC-2020
# изменено 15-ДЕК-2020
#
#
# перейти в безопасный каталог:
#

cd C: \ users \ so \ crt

#
# Создайте RootCA.pem, RootCA.key и RootCA.crt в качестве центра сертификации:
#
openssl req -x509 -nodes -new -sha256 -days 10240 -newkey rsa: 2048 -keyout RootCA.key -out RootCA.pem -subj "/ C = ZA / CN = RootCA-CA"
openssl x509 -outform pem -in RootCA.pem -out RootCA.crt

#
# get RootCA.pfx: разрешение импорта в iis10: не требуется.
#
#openssl pkcs12 -export -out RootCA.pfx -inkey RootCA.key -в RootCA.crt

#
# получаем xhost.key xhost.csr:
# C: Страна
# ST: состояние
# L: населенный пункт (город)
# O: Название организации
# OU: организационная единица
# CN: Общее имя
#
openssl req -new -nodes -newkey rsa: 2048 -keyout xhost.key -out xhost.csr -subj "/ C = ZA / ST = FREE STATE / L = Национальный парк Golden Gate Highlands / O = WWF4ME / OU = xhost. home / CN = xhost.local "

#
# получить сертификат xhost.crt от RootCA.pem:
# для показа контента:
# openssl x509 -in xhost.crt -noout -text
#
openssl x509 -req -sha256 -days 1024 -in xhost.csr -CA RootCA.pem -CAkey RootCA.key -CAcreateserial -extfile domains.ext -out xhost.crt

#
# получить xhost.pfx, разрешив импорт в iis:
#
openssl pkcs12 -export -out xhost.pfx -inkey xhost.key -in xhost.crt

#
# import xhost.pfx в iis10, установленном на компьютере xhost (здесь localhost).
#
  

Чтобы установить openSSL для Windows, посетите https://slproweb.com/products/Win32OpenSSL.html

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *