* / \ ( ) ?.,&.

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

  • 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 для Apache в Ubuntu 18.04

Предыдущая версия данного обучающего руководства была написана Джастином Эллингвудом

Введение

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

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

В этом обучающем модуле мы покажем, как создать самоподписанный сертификат SSL для использования с веб-сервером Apache в Ubuntu 18. 04.

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

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

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

Для начала у вас должен быть пользователь без прав root с привилегиями sudo. Чтобы создать такую учетную запись пользователя, следуйте указаниям руководства «Начальная настройка сервера с Ubuntu 18.

04».

Также вам потребуется установить веб-сервер Apache. Если вы хотите установить на сервере полный комплект LAMP (Linux, Apache, MySQL, PHP), следуйте указаниям обучающего модуля «Установка LAMP в Ubuntu 18.04». Если вы хотите просто установить веб-сервер Apache, пропустите шаги, относящиеся к установке PHP и MySQL.

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

Шаг 1 – Создание сертификата SSL

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

Мы можем создать самоподписанный ключ и пару сертификатов OpenSSL с помощью одной команды:

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

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

  • openssl: это базовый инструмент командной строки для создания и управления сертификатами OpenSSL, ключами и другими файлами.
  • req: данная субкоманда указывает, что мы хотим использовать управление запросами подписи сертификатов X.509 (CSR). X.509 — это стандарт инфраструктуры открытых ключей, используемый SSL и TLS для управления ключами и сертификатами. Вы хотим создать новый сертификат X.509, и поэтому используем эту субкоманду.
  • -x509: это дополнительно изменяет предыдущую субкоманду, сообщая утилите, что мы хотим создать самоподписанный сертификат, а не сгенерировать запрос на подпись сертификата, как обычно происходит.
  • -nodes: этот параметр указывает OpenSSL пропустить опцию защиты сертификата с помощью пароля. Для чтения этого файла при запуске сервера без вмешательства пользователя нам потребуется Apache. Кодовая фраза может предотвратить это, поскольку нам придется вводить ее после каждого перезапуска.
  • -days 365: данный параметр устанавливает срок, в течение которого сертификат будет считаться действительным. Здесь мы устанавливаем срок действия в один год.
  • -newkey rsa:2048: указывает, что мы хотим генерировать новый сертификат и новый ключ одновременно. Мы не создали требуемый ключ для подписи сертификата на предыдущем шаге, и поэтому нам нужно создать его вместе с сертификатом. Часть rsa:2048 указывает, что мы создаем ключ RSA длиной 2048 бит.
  • -keyout: эта строка указывает OpenSSL, где мы разместим создаваемый закрытый ключ.
  • -out: данный параметр указывает OpenSSL, куда поместить создаваемый сертификат.

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

Укажите подходящие ответы. Самая важная строка — это строка, где запрашивается обычное имя (т. е. FQDN сервера или ВАШЕ имя). Вам нужно ввести доменное имя, связанное с вашим сервером или, что более вероятно, публичный IP-адрес вашего сервера.

В целом диалоги выглядят примерно так:

Output

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/ssl.

Шаг 2 — Настройка Apache для использования SSL

Мы создали файлы ключа и сертификата в каталоге /etc/ssl. Теперь нам просто нужно изменить конфигурацию Apache, чтобы воспользоваться их преимуществами.

Внесем несколько небольших изменений в нашу конфигурацию:

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

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

Создание сниппета конфигурации Apache с надежными настройками шифрования

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

Создайте новый сниппет в каталоге /etc/apache2/conf-available. Мы назовем файл ssl-params.conf, чтобы сделать его назначение очевидным:

  • sudo nano /etc/apache2/conf-available/ssl-params.conf

Для безопасной настройки Apache SSL мы используем рекомендации Реми ван Эльста на сайте Cipherli.st. Этот сайт создан для предоставления удобных настроек шифрования для популярного программного обеспечения.

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

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

Для наших целей мы скопируем предоставленные настройки полностью. Мы внесем только одно небольшое изменение. Мы отключим заголовок Strict-Transport-Security (HSTS).

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

Прежде чем принимать решения, прочитайте о строгой безопасности транспорта HTTP или HSTS, в особенности о функции «предварительной загрузки»

Вставьте конфигурацию в открытый нами файл ssl-params.conf:

/etc/apache2/conf-available/ssl-params.conf

SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLHonorCipherOrder On
# Disable preloading HSTS for now.  You can use the commented out header line that includes
# the "preload" directive if you understand the implications. 
# Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
# Requires Apache >= 2.4
SSLCompression off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
# Requires Apache >= 2.4.11
SSLSessionTickets Off

Сохраните файл и закройте его после завершения.

Изменение файла виртуального хоста Apache SSL по умолчанию

Теперь изменим /etc/apache2/sites-available/sl.conf, используемый по умолчанию файл виртуального хоста Apache SSL. Если вы используете другой файл серверных блоков, используйте имя этого файла в приведенных ниже командах.

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

  • sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/default-ssl.conf.bak

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

  • sudo nano /etc/apache2/sites-available/default-ssl. conf

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

/etc/apache2/sites-available/default-ssl.conf

<IfModule mod_ssl.c>
        <VirtualHost _default_:443>
                ServerAdmin webmaster@localhost

                DocumentRoot /var/www/html

                ErrorLog ${APACHE_LOG_DIR}/error.log
                CustomLog ${APACHE_LOG_DIR}/access.log combined

                SSLEngine on

                SSLCertificateFile      /etc/ssl/certs/ssl-cert-snakeoil.pem
                SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

                <FilesMatch "\.(cgi|shtml|phtml|php)$">
                                SSLOptions +StdEnvVars
                </FilesMatch>
                <Directory /usr/lib/cgi-bin>
                                SSLOptions +StdEnvVars
                </Directory>

        </VirtualHost>
</IfModule>

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

После внесения изменений ваш серверный блок должен выглядеть примерно так:

/etc/apache2/sites-available/default-ssl.conf

<IfModule mod_ssl.c>
        <VirtualHost _default_:443>
                ServerAdmin [email protected]
                ServerName server_domain_or_IP

                DocumentRoot /var/www/html

                ErrorLog ${APACHE_LOG_DIR}/error.log
                CustomLog ${APACHE_LOG_DIR}/access.log combined

                SSLEngine on

                SSLCertificateFile      /etc/ssl/certs/apache-selfsigned.crt
                SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key

                <FilesMatch "\.(cgi|shtml|phtml|php)$">
                                SSLOptions +StdEnvVars
                </FilesMatch>
                <Directory /usr/lib/cgi-bin>
                                SSLOptions +StdEnvVars
                </Directory>

        </VirtualHost>
</IfModule>

Сохраните файл и закройте его после завершения.

(Рекомендуется) Изменение файла хоста HTTP для перенаправления на HTTPS

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

Чтобы изменить файл нешифрованного виртуального хоста для перенаправления всего трафика для шифрования SSL, мы можем открыть файл /etc/apache2/sites-available/000-default.conf:

  • sudo nano /etc/apache2/sites-available/000-default.conf

Внутри файла в блоках конфигурации VirtualHost нам нужно добавить директиву Redirect, которая должна направлять весь трафик на версию сайта с шифрованием SSL:

/etc/apache2/sites-available/000-default.conf

<VirtualHost *:80>
        .  . .

        Redirect "/" "https://your_domain_or_IP/"

        . . .
</VirtualHost>

Сохраните файл и закройте его после завершения.

Шаг 3 — Настройка брандмауэра

Если у вас включен брандмаэр ufw в соответствии с предварительными требованиями, вам может потребоваться изменить настройки для поддержки трафика SSL . К счастью, Apache регистрирует несколько профилей ufw после установки.

Мы можем просмотреть доступные профили с помощью следующей команды:

Список должен выглядеть примерно так:

Output

Available applications: Apache Apache Full Apache Secure OpenSSH

Вы можете просмотреть текущие настройки с помощью следующей команды:

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

Output

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

Чтобы разрешить дополнительный трафик HTTPS, мы разрешим профиль «Apache Full» и удалим избыточный профиль «Apache»:

  • sudo ufw allow 'Apache Full'
  • sudo ufw delete allow 'Apache'

Теперь ваш статус должен выглядеть примерно так:

Output

Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Apache Full ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache Full (v6) ALLOW Anywhere (v6)

Шаг 4 — Активация изменений в Apache

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

Мы можем активровать mod_ssl, модуль Apache SSL, и модуль mod_headers, необходимый для некоторых настроек нашего сниппета SSL, с помощью команды a2enmod:

  • sudo a2enmod ssl
  • sudo a2enmod headers

Теперь мы можем активировать виртуальный хост SSL с помощью команды a2ensite:

  • sudo a2ensite default-ssl

Также нам нужно будет активировать файл ssl-params.conf для считывания заданных значений:

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

  • sudo apache2ctl configtest

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

Output

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127. 0.1.1. Set the 'ServerName' directive globally to suppress this message Syntax OK

Первая строка — это сообщение о том, что директива ServerName не задана глобально. Если вы хотите избавиться от этого сообщения, вы можете задать для ServerName доменное имя вашего сервера или IP-адрес в каталоге /etc/apache2/apache2.conf. Это необязательно, потому что данное сообщение не наносит никакого вреда.

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

  • sudo systemctl restart apache2

Шаг 5 — Тестирование шифрования

Теперь мы готовы протестировать наш сервер SSL.

Откройте браузер и введите https:// и доменное имя или IP-адрес вашего сервера в адресную панель:

https://server_domain_or_IP

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

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

Теперь должен открыться ваш сайт. Если вы посмотрите в адресную строку браузера, вы увидите символ замка со знаком «x». В данном случае это означает, что сертификат не удается проверить. Ваше соединение все равно шифруется.

Если вы настроили Apache для перенаправления HTTP на HTTPS, вы можете проверить правильность перенаправления функций:

http://server_domain_or_IP

Если при этом появляется такой же значок, перенаправление работает правильно.

Шаг 6 – Переключение на постоянное перенаправление

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

Откройте файл конфигурации серверного блока еще раз:

  • sudo nano /etc/apache2/sites-available/000-default. conf

Найдите добавленную нами строку Redirect. Добавьте в эту строку атрибут permanent, который изменяет тип перенаправления с временного перенаправления 302 на постоянное перенаправление 301:

/etc/apache2/sites-available/000-default.conf

<VirtualHost *:80>
        . . .

        Redirect permanent "/" "https://your_domain_or_IP/"

        . . .
</VirtualHost>

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

Проверьте конфигурацию на ошибки синтаксиса:

  • sudo apache2ctl configtest

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

  • sudo systemctl restart apache2

Заключение

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

Включение 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 в развертывании портала см. в разделе Оптимальные методы защиты.

Страница не найдена – Information Security Squad

  • 🛡️ Конструкторы сайтов: обзор лучших сервисов 22.05.2021

    Конструкторы сайтов – настоящее открытие в мире сайтостроения, которое кардинально изменило подход к созданию сайтов и снизило порог вхождения в нишу. Конструкторы максимально упрощают и автоматизируют процесс разработки и администрирования веб-ресурсов, предоставляя пользователям темы оформления, функционал и хостинг-площадку. Но не все сервисы одинаково хороши и пользуются популярностью среди вебмастеров. Рассмотрим две платформы, признанные одними из […]

  • 🔫 Обзор инструментов брутфорса для тестирования на проникновение 20.05.2021

    Нам обязательно необходимо конкретное доказательство того, что наш онлайн-бизнес устойчив к различным видам кибератак, особенно к атакам методом брута. Что такое брутфорс атака? Атака типа брутфорса – одна из самых опасных кибератак! Атака методом перебора, как правило нацелена на сердце вашего веб-сайта или безопасность вашего устройства,а именно пароль для входа или ключи шифрования. В ней […]

  • 🔐 Как указать пароль шифрования при использовании утилиты OpenSSL 20.05.2021

    Давайте рассмотрим различные способы предоставления пароля шифрования при использовании утилиты OpenSSL. Возможно, не напрямую, но я уже упоминал об этом в нескольких сообщениях в блогах, поэтому позвольте мне подвести итог. Версия OpenSSL $ openssl version OpenSSL 1.1.1f 31 Mar 2020 Зашифруем файл, используя пароль, предоставленный из стандартного ввода (stdout). $ echo «password» | openssl enc […]

  • 🐧 1Password: Как установить менеджер паролей на Linux 20.05.2021

    1Password – это полноценное, полностью интегрированное в десктоп приложение, которое предлагает красивый интерфейс и все функции, о которых вы могли бы мечтать в диспетчере паролей. Примечание: Это не открытый исходный код. Для меня это не проблема. Для меня важнее всего то, чтобы нужное мне программное обеспечение работало на Linux. Некоторое время я был пользователем BitWarden. […]

  • 🐳 Примеры, как подключать контейнеры Docker к сети 19.05.2021

    Одна из классных функций, встроенных непосредственно в Docker, – это работа в сети. Доступ к сетевой функции Docker можно получить с помощью флага –link, который позволяет подключать любое количество контейнеров Docker без необходимости открывать внутренние порты контейнера внешнему миру. В этом руководстве вы узнаете, как объединить в сеть два или более контейнера Docker в системе […]

  • Создание сертификатов компании с помощью программы XCA

    Для создания сертификатов будем использовать бесплатную программу управления сертификатами XCA.

    Скачать данную программу можно с сайта https://www.hohnstaedt.de/xca/

    Запустим XCA и создадим базу данных для хранения наших сертификатов Файл → Новая база данных.

    1. Создадим сертификат удостоверяющего центра (УЦ) нашей компании.

    Создадим закрытый ключ для сертификата УЦ нашей компании. Вкладка Закрытые ключи → Новый ключ.

    Заполняем параметры ключа и нажимаем кнопку создать.

    Создали закрытый ключ. Теперь перейдем во вкладку Сертификаты и создадим сертификат УЦ нашей компании.

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

    Вкладка Первоисточник

    Алгоритм подписи — SHA 256

    Шаблон для нового сертификата — выберем шаблон по умолчанию для УЦ (CA — Certificate authority)

    Нажимаем кнопку Применить всё.

    Вкладка Субъект.

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

    Вкладка Расширение.

    Выберем тип базового контейнера — Центр Сертификации.

    Вкладка Область применения ключа.

    В разделе X509v3 Key Usage должны быть включены параметры Certificate Sign и CRL Sign

    Вкладка Netscape.

    Можно убрать выбранные типы шаблона CA

    Нажимаем кнопку Ok для создания сертификата.

    Во вкладке Сертификаты появился сертификат УЦ.

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

    Экспортируем закрытый ключ.

    Импортируем сертификат CA в UserGate. Для этого перейдем в UserGate → вкладка Сертификаты и нажмем кнопку импорт.

    В окне импорта сертификата запишем название сертификата, загрузим сертификат и закрытый ключ УЦ. Затем нажмем кнопку сохранить.

    Назначим сертификату роль SSL дешифрование.

    Импортируем на рабочих станциях сертификат УЦ в доверенные корневые центры сертификации.

    2. Создадим SSL сертификат captive-портала.

    Создадим новый закрытый ключ. Процесса создания закрытого ключа аналогичен созданию ключа для УЦ.

    Создадим запрос на получение сертификата, во вкладке Запрос на получение сертификата → Новый запрос.

    Вкладка Первоисточник.

    Шаблон для нового сертификата — HTTPS_server.

    Алгоритм подписи — SHA 256.

    Нажмем на кнопку — Применить Всё.

    Вкладка Субъект

    Заполним персональные данные субъекта и выберем закрытый ключ созданный для этого сертификата. В поле commonName введем одно из имен домена captive.

    Вкладка Расширение.

    В поле X509v3 Subject Alternative Name нажмем кнопку Редактировать.

    Добавим записи с типом DNS доменов captive-портала.

    Check box Copy Common Name скопирует в альтернативные имена домен auth.kraftech.ru

    Для сохранения введенных имен нажмем кнопку Применить.

    Вкладка Область применения ключа.

    В разделе X509v3 Key Usage должны быть включены параметры Digital Signature, Non Repudiation и Key Encipherment.

    Вкладка Netscape.

    Оставляем значения пустыми.

    После введенных значений для создания сертификат нажмем кнопку ОК.

    У нас появился запрос

    Выберем запрос и в контекстном меню нажмем Подписать.

    Во вкладке Первоисточник → Подписание → Использовать этот сертификат для подписи выберем наш сертификат УЦ.

    Для подписания сертификата нажмем кнопку ОК.

    Во вкладке Сертификаты появился новый сертификат подписанный нашим УЦ.

    Экспортируем этот сертификат и его закрытый ключ.

    Импортируем в UserGate данный сертификат и его закрытый ключ по аналогии с импортом сертификата УЦ и назначим ему роль SSL captive-портала.

    3. Создадим SSL сертификат веб-консоли.

    Создадим новый закрытый ключ. Процесса создания закрытого ключа аналогичен созданию ключа для УЦ.

    Создадим запрос на получение сертификата, во вкладке Запрос на получение сертификата → Новый запрос.

    Вкладка Первоисточник.

    Шаблон для нового сертификата — HTTPS_server.

    Алгоритм подписи — SHA 256.

    Нажмем на кнопку — Применить Всё.

    Вкладка Субъект

    Заполним персональные данные субъекта и выберем закрытый ключ созданный для этого сертификата. В поле commonName введем FQDN имя сервера UserGate.

    Вкладка Расширение.

    Многие браузеры сертификат сайта и доменное имя сопоставляют по Subject Alternative Name для этого устанавливаем значение DNS:copycn в Subject Alternative Name

    Вкладка Область применения ключа.

    В разделе X509v3 Key Usage должны быть включены параметры Digital Signature, Non Repudiation и Key Encipherment.

    Вкладка Netscape.

    Оставляем значения пустыми.

    После введенных значений для создания сертификат нажмем кнопку ОК.

    У нас появился запрос

    Выберем запрос и в контекстном меню нажмем Подписать.

    Во вкладке Первоисточник → Подписание → Использовать этот сертификат для подписи выберем наш сертификат УЦ.

    Для подписания сертификата нажмем кнопку ОК.

    Во вкладке Сертификаты появился новый сертификат подписанный нашим УЦ.

    Экспортируем этот сертификат и его закрытый ключ.

    Импортируем в UserGate данный сертификат и его закрытый ключ по аналогии с импортом сертификата УЦ и назначим ему роль 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

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

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

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

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


    Предпосылки 

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

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

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


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

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

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

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

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


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

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

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

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

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

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

    ls 
    example.crt example.key
     

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

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


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

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

    openssl req -newkey rsa:4096 \
                -x509 \
                -sha256 \
                -days 3650 \
                -nodes \
                -out example. crt \
                -keyout example.key \
                -subj "/C=SI/ST=Ljubljana/L=Ljubljana/O=Security/OU=IT Department/CN=www.example.com"
     

    Generating a RSA private key
    ......................................................................++++
    ........++++
    writing new private key to 'example.key'
    -----

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


    Вывод 

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

    OpenSSL Essentials: работа с сертификатами SSL, закрытыми ключами и CSR

    Введение

    OpenSSL — это универсальный инструмент командной строки, который можно использовать для большого количества задач, связанных с инфраструктурой открытых ключей (PKI) и HTTPS (HTTP через TLS). В этом руководстве по стилям шпаргалки содержится краткий справочник по командам OpenSSL, которые полезны в обычных повседневных сценариях. Сюда входят примеры OpenSSL генерации закрытых ключей, запросов на подпись сертификатов и преобразования формата сертификата.Он не охватывает все варианты использования OpenSSL.

    Как пользоваться этим руководством:

    • Если вы не знакомы с запросами на подпись сертификатов (CSR), прочтите первый раздел
    • Помимо первого раздела, это руководство представлено в простом формате шпаргалки — отдельные фрагменты командной строки.
    • Переход к любому разделу, имеющему отношение к задаче, которую вы пытаетесь выполнить (совет: используйте меню Contents в нижнем левом углу или функцию Find вашего браузера)
    • Большинство команд являются однострочными, которые были расширены до нескольких строк (с использованием символа \ ) для ясности

    О запросах на подпись сертификатов (CSR)

    Если вы хотите получить сертификат SSL от центра сертификации (CA), вы должны сгенерировать запрос на подпись сертификата (CSR).CSR состоит в основном из открытого ключа пары ключей и некоторой дополнительной информации. Оба эти компонента вставляются в сертификат при его подписании.

    Каждый раз, когда вы создаете CSR, вам будет предложено предоставить информацию о сертификате. Эта информация известна как отличительное имя (DN). Важным полем в DN является Common Name (CN), которое должно быть точным полным доменным именем (FQDN) хоста, с которым вы собираетесь использовать сертификат. Также можно пропустить интерактивные подсказки при создании CSR, передав информацию через командную строку или из файла.

    Другие элементы DN предоставляют дополнительную информацию о вашем бизнесе или организации. Если вы покупаете сертификат SSL в центре сертификации, часто требуется, чтобы эти дополнительные поля, такие как «Организация», точно отражали данные вашей организации.

    Вот пример того, как будет выглядеть информационная подсказка CSR:

      ---
    Название страны (двухбуквенный код) [AU]: США
    Название штата или провинции (полное название) [Some-State]: Нью-Йорк
    Название населенного пункта (например, город) []: Brooklyn
    Название организации (например, компания) [Internet Widgits Pty Ltd]: Пример Brooklyn Company
    Название организационной единицы (например, раздел) []: Технологический отдел
    Общее имя (e.грамм. полное доменное имя сервера или ВАШЕ имя) []: examplebrooklyn.com
    Адрес электронной почты []:
      

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

      -subj "/ C = US / ST = New York / L = Brooklyn / O = Example Brooklyn Company / CN = examplebrooklyn.com"
      

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

    Создание CSR

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

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

    Создание закрытого ключа и CSR

    Используйте этот метод, если вы хотите использовать HTTPS (HTTP через TLS) для защиты своего веб-сервера Apache HTTP или Nginx и хотите использовать центр сертификации (CA) для выдачи сертификата SSL. Сгенерированный CSR может быть отправлен в ЦС для запроса выдачи сертификата SSL, подписанного ЦС. Если ваш центр сертификации поддерживает SHA-2, добавьте параметр -sha256 , чтобы подписать CSR с помощью SHA-2.

    Эта команда создает 2048-битный закрытый ключ ( domain.key ) и CSR ( domain.csr ) с нуля:

      openssl req \
           -newkey rsa: 2048 -nodes -keyout domain.key \
           -out domain.csr
      

    Ответьте на информационный запрос CSR, чтобы завершить процесс.

    Параметр -newkey rsa: 2048 указывает, что ключ должен быть 2048-битным, сгенерированным с использованием алгоритма RSA. Параметр -nodes указывает, что закрытый ключ должен быть , а не , зашифрован парольной фразой. Опция -new , которая здесь не включена, но подразумевается, указывает, что создается CSR.

    Создание CSR из существующего закрытого ключа

    Используйте этот метод, если у вас уже есть закрытый ключ, который вы хотите использовать для запроса сертификата в ЦС.

    Эта команда создает новый CSR ( domain.csr ) на основе существующего закрытого ключа ( domain.key ):

      openssl req \
           -key domain.key \
           -новый -out domain.csr
      

    Ответьте на информационный запрос CSR, чтобы завершить процесс.

    Параметр -key указывает существующий закрытый ключ ( domain.key ), который будет использоваться для создания нового CSR. Параметр -new указывает, что создается CSR.

    Создать CSR из существующего сертификата и закрытого ключа

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

    Эта команда создает новый CSR ( domain.csr ) на основе существующего сертификата ( domain. crt ) и закрытого ключа (домен .ключ ):

      openssl x509 \
           -в domain.crt \
           -signkey domain.key \
           -x509toreq -out domain.csr
      

    Параметр -x509toreq указывает, что вы используете сертификат X509 для создания CSR.

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

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

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

    В этом разделе рассматриваются команды OpenSSL, связанные с созданием самозаверяющих сертификатов.

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

    Используйте этот метод, если вы хотите использовать HTTPS (HTTP через TLS) для защиты своего веб-сервера Apache HTTP или Nginx, и вам не требуется, чтобы ваш сертификат был подписан центром сертификации.

    Эта команда создает 2048-битный закрытый ключ ( domain.key ) и самозаверяющий сертификат ( domain.crt ) с нуля:

      openssl req \
           -newkey rsa: 2048 -nodes -keyout domain.key \
           -x509 -дней 365 -вых домен.crt
      

    Ответьте на информационный запрос CSR, чтобы завершить процесс.

    Параметр -x509 сообщает req о создании самозаверяющего сертификата. Параметр -дней 365 указывает, что сертификат будет действителен в течение 365 дней. Временный CSR создается для сбора информации для связи с сертификатом.

    Создание самозаверяющего сертификата из существующего закрытого ключа

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

    Эта команда создает самозаверяющий сертификат ( domain.crt ) из существующего закрытого ключа ( domain.key ):

      openssl req \
           -key domain.key \
           -новый \
           -x509 -дней 365 -out domain.crt
      

    Ответьте на информационный запрос CSR, чтобы завершить процесс.

    Параметр -x509 сообщает req о создании самозаверяющего сертификата. Параметр -дней 365 указывает, что сертификат будет действителен в течение 365 дней.Опция -new включает информационную подсказку CSR.

    Создание самозаверяющего сертификата из существующего закрытого ключа и CSR

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

    Эта команда создает самозаверяющий сертификат ( domain.crt ) из существующего закрытого ключа ( domain.key ) и ( domain.csr ):

      openssl x509 \
           -signkey домен.ключ \
           -в domain.csr \
           -req -дней 365 -out domain.crt
      

    Параметр -дней 365 указывает, что сертификат будет действителен в течение 365 дней.

    Посмотреть сертификаты

    Файлы сертификатов и CSR закодированы в формате PEM, который не читается человеком.

    В этом разделе рассматриваются команды OpenSSL, которые выводят фактические записи файлов в кодировке PEM.

    Просмотр записей CSR

    Эта команда позволяет просматривать и проверять содержимое CSR (домен .csr ) обычным текстом:

      openssl req -text -noout -verify -in domain.csr
      

    Просмотр записей сертификата

    Эта команда позволяет просматривать содержимое сертификата ( domain. crt ) в виде обычного текста:

      openssl x509 -text -noout -in domain.crt
      

    Проверка сертификата, подписанного центром сертификации

    Используйте эту команду, чтобы убедиться, что сертификат ( domain.crt ) был подписан определенным сертификатом CA ( ca.crt ):

      openssl verify -verbose -CAFile ca.crt domain.crt
      

    Частные ключи

    В этом разделе рассматриваются команды OpenSSL, специфичные для создания и проверки закрытых ключей.

    Создайте закрытый ключ

    Используйте эту команду для создания защищенного паролем 2048-битного закрытого ключа ( domain.key ):

      openssl genrsa -des3 -out domain.key 2048
      

    Введите пароль, когда будет предложено завершить процесс.

    Подтвердите закрытый ключ

    Используйте эту команду, чтобы проверить, что закрытый ключ ( domain.key ) является действительным ключом:

      openssl rsa -check -in domain. key
      

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

    Проверка соответствия закрытого ключа сертификату и CSR

    Используйте эти команды, чтобы проверить, есть ли закрытый ключ (домен .ключ ) соответствует сертификату ( domain.crt ) и CSR ( domain.csr ):

      openssl rsa -noout -modulus -in domain.key | openssl md5
    openssl x509 -noout -modulus -in domain.crt | openssl md5
    openssl req -noout -modulus -in domain.csr | openssl md5
      

    Если выходные данные каждой команды идентичны, очень высока вероятность того, что закрытый ключ, сертификат и CSR связаны.

    Зашифровать закрытый ключ

    Для этого требуется незашифрованный закрытый ключ ( unencrypted.ключ ) и выводит его зашифрованную версию ( encrypted.key ):

      openssl rsa -des3 \
           -в unencrypted. key \
           -out encrypted.key
      

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

    Расшифровать закрытый ключ

    Он принимает зашифрованный закрытый ключ ( encrypted.key ) и выводит его расшифрованную версию ( decrypted.key ):

      openssl rsa \
           -в зашифрованном виде.ключ \
           -out decrypted.key
      

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

    Преобразование форматов сертификатов

    Все сертификаты, с которыми мы работали, были сертификатами X.509 в кодировке ASCII PEM. Существует множество других кодировок сертификатов и типов контейнеров; некоторые приложения предпочитают одни форматы другим. Кроме того, многие из этих форматов могут содержать несколько элементов, таких как закрытый ключ, сертификат и сертификат CA, в одном файле.

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

    преобразовать PEM в DER

    Используйте эту команду, если вы хотите преобразовать сертификат в кодировке PEM ( domain.crt ) в сертификат в кодировке DER ( domain.der ), двоичный формат:

      openssl x509 \
           -в domain.crt \
           -outform der -out domain.der
      

    Формат DER обычно используется с Java.

    преобразовать DER в PEM

    Используйте эту команду, если вы хотите преобразовать сертификат с кодировкой DER ( domain.der ) в сертификат с кодировкой PEM ( domain.crt ):

      openssl x509 \
           -inform der -in domain.der \
           -out domain.crt
      

    преобразовать PEM в PKCS7

    Используйте эту команду, если вы хотите добавить сертификаты PEM ( domain.crt и ca-chain.crt ) в файл PKCS7 ( domain.p7b ):

      openssl crl2pkcs7 -nocrl \
           -certfile домен. crt \
           -certfile ca-chain.crt \
           -out domain.p7b
      

    Обратите внимание, что вы можете использовать один или несколько параметров -certfile , чтобы указать, какие сертификаты нужно добавить в файл PKCS7.

    Файлы

    PKCS7, также известные как P7B, обычно используются в хранилищах ключей Java и Microsoft IIS (Windows). Это файлы ASCII, которые могут содержать сертификаты и сертификаты CA.

    преобразовать PKCS7 в PEM

    Используйте эту команду, если вы хотите преобразовать файл PKCS7 (домен .p7b ) в файл PEM:

      openssl pkcs7 \
           -в domain.p7b \
           -print_certs -out domain.crt
      

    Обратите внимание, что если ваш файл PKCS7 содержит несколько элементов (например, сертификат и промежуточный сертификат CA), созданный файл PEM будет содержать все элементы в нем.

    преобразовать PEM в PKCS12

    Используйте эту команду, если вы хотите взять закрытый ключ ( domain. key ) и сертификат ( domain.crt ) и объединить их в файл PKCS12 (домен .pfx ):

      openssl pkcs12 \
           -inkey domain.key \
           -в domain.crt \
           -export -out domain.pfx
      

    Вам будет предложено ввести пароли для экспорта, которые вы можете оставить пустыми. Обратите внимание, что в этом случае вы можете добавить цепочку сертификатов в файл PKCS12, объединив сертификаты в один файл PEM ( domain.crt ).

    Файлы

    PKCS12, также известные как файлы PFX, обычно используются для импорта и экспорта цепочек сертификатов в Micrsoft IIS (Windows).

    преобразовать PKCS12 в PEM

    Используйте эту команду, если вы хотите преобразовать файл PKCS12 ( domain.pfx ) и преобразовать его в формат PEM ( domain.combined.crt ):

      openssl pkcs12 \
           -в domain.pfx \
           -nodes -out domain.combined.crt
      

    Обратите внимание, что если ваш файл PKCS12 содержит несколько элементов (например, сертификат и закрытый ключ), созданный файл PEM будет содержать все элементы в нем.

    Версия OpenSSL

    Команду openssl version можно использовать для проверки того, какая версия у вас запущена.Версия OpenSSL, которую вы используете, и параметры, с которыми она была скомпилирована, влияют на доступные вам возможности (а иногда и параметры командной строки).

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

      версия openssl -a
      

    Это руководство было написано с использованием двоичного кода OpenSSL со следующими деталями (вывод предыдущей команды):

      OpenSSL 1.0.1f 6 января 2014 г.
    построено: 7 апр, понедельник, 21:22:23 UTC 2014
    платформа: debian-amd64
    параметры: bn (64,64) rc4 (16x, int) des (idx, cisc, 16, int) blowfish (idx)
    компилятор: cc -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -DTERMIO -g -O2 -fstack-protector --param = ssp-buffer -form-size = 4 -Wer_Sport_form-buffer-size = 4 -Wer_Sport_form_Sport-size = 4 -Wer_Sror_form_Sport-size = 4 -Wer_Sp-buffer-format-size = 4 -Wer_Sp-buffer-format-size = 4 -Wer_Sror_form_Surform-buffer-size = 4 -Wer_Sport_form_Surform-buffer-size = 4 -Wer_Sport_form_Sror_form-Size = 4 -Wer_ = 2 -Wl, -Bsymbolic-функции -Wl, -z, relro -wa, - noexecstack -Wall -DMD32_REG_T = INT -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
    OPENSSLDIR: "/ usr / lib / ssl"
      

    Заключение

    Это должно объяснить, как большинство людей используют OpenSSL для работы с сертификатами SSL! У него много других применений, которые здесь не рассматривались, поэтому не стесняйтесь спрашивать или предлагать другие варианты использования в комментариях.

    Если у вас возникли проблемы с любой из команд, обязательно прокомментируйте (и включите вывод своей версии OpenSSL).

    Как работают SSL-сертификаты, закрытые ключи и CSR?

    Введение

    Первоначально разработанный Netscape в 1994 году для поддержки возможностей электронной коммерции в Интернете, Secure Socket Layer (SSL) прошел долгий путь. Несмотря на все кибератаки, сертификаты SSL стали постоянной необходимостью для любого действующего веб-сайта.

    Хотя Secure Socket Layer (SSL) и Transport Socket Layer (TLS) стали достаточно повсеместными, мы уделим немного времени объяснению того, что они делают и как они это делают.

    Не пропустите раздел OpenSSL Tutorial .

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

    Сертификат Secure Socket Layer (SSL) — это протокол безопасности, который защищает данные между двумя компьютерами с помощью шифрования.


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


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

    Сертификаты SSL

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

    В чем разница между TLS и SSL?

    Нет . Transport Layer Security (TLS) — это обновленная версия Secure Socket Layer (SSL). Несмотря на то, что наиболее безопасные соединения осуществляются через протоколы TLS, люди продолжают называть его SSL. В этом случае можно с уверенностью сказать, что от старых привычек трудно избавиться.

    Как я могу узнать, защищена ли веб-страница с помощью SSL?

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

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

    Зачем мне нужен сертификат SSL?

    Рассмотрим пример из жизни.

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

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

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

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

    Где я могу получить сертификат SSL?

    Сертификаты SSL

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

    1. Создайте CSR и пару ключей локально на вашем сервере. Пара ключей состоит из открытого и закрытого ключей.
    2. Отправьте CSR и открытый ключ в центр сертификации, который проверит вашу юридическую личность и подтвердит, владеете ли вы доменом, указанным в заявке, и контролируете его. Центр сертификации выполняет проверку вашей организации и проверяет, зарегистрирована ли организация в месте, указанном в CSR, и существует ли домен.
    3. После проверки организация получает копию своего сертификата SSL, включая сведения о бизнесе, а также открытый ключ. Теперь организация может установить сертификат на свой сервер.
    4. Когда CA выдает сертификат, он привязывается к «доверенному корневому» сертификату центра сертификации. Корневые сертификаты встроены в каждый браузер и связаны с индивидуально выданными сертификатами для установления HTTPS-соединения.

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


    Типы сертификатов SSL

    Убедитесь, что вы выбрали ЦС, который поддерживает нужный тип сертификата. Для вашего удобства ниже приводится описание каждого типа сертификата:

    SSL-сертификат для одного домена

    Этот тип предназначен для использования в одном домене и не поддерживает поддомены. Например, если сертификат будет использоваться для www.phoenixnap.com, другие доменные имена не поддерживаются.

    Множественный домен (сертификаты SAN / UC)

    Несколько доменных сертификатов используются для множества доменов и поддоменов. Помимо полного доменного имени, вы можете добавить поддержку других (под) доменов, добавив их в поле альтернативного имени субъекта. Например, сертификат SAN может включать домен www.phoenixnap.com, его поддомен help.phoenixnap.com, а также другой домен (например, www.examplesite.com).

    Подстановочный сертификат

    Подстановочные сертификаты могут использоваться для домена, включая все его поддомены.Основное отличие состоит в том, что вместо того, чтобы выдавать определенное полное доменное имя, сертификаты с подстановочными знаками используются для широкого диапазона поддоменов. Например, подстановочный сертификат, выданный для * .phoenixnap.com, можно использовать для широкого диапазона поддоменов в основном домене www.phoenixnap.com, как показано на изображении ниже.

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

    Центры сертификации

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

    Проверка домена (DV SSL)

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

    Расширенная проверка (EV SSL)

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

    1. Название организации соответствует официальным данным.
    2. Физическое, юридическое и оперативное существование предприятия.
    3. Организация имеет исключительные права на использование домена, указанного в сертификате SSL.
    4. Организация соответствующим образом санкционировала выпуск сертификата EV SSL.

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

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

    Мы будем генерировать CSR с использованием OpenSSL .

    OpenSSL — широко используемый инструмент для работы с файлами CSR и сертификатами SSL, который доступен для загрузки на официальном сайте OpenSSL. Это инструмент реализации SSL / TLS с открытым исходным кодом, который используется примерно на 65% всех активных интернет-серверов, что делает его неофициальным отраслевым стандартом.

    Debian и Ubuntu

      dpkg -l | grep openssl  

    Если пакет OpenSSL установлен, он вернет следующий результат:

      ii libgnutls-openssl27: amd64 2.12.23-12ubuntu2.4 amd64 GNU TLS library - оболочка OpenSSL
    
    ii openssl 1.0.1f-1ubuntu2.16 amd64 Secure Sockets Layer toolkit - криптографическая утилита  

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

      apt-get install openssl  

    Red Hat или CentOS

    Red Hat (выпуск 7. 0 и новее) должен поставляться с предустановленной ограниченной версией OpenSSL. Он предлагает только ограниченную поддержку IDEA, RC5 и MDC2, поэтому вы можете установить недостающие функции.Чтобы узнать больше об этом, см. Документацию OpenSSL.

    Чтобы проверить, установлен ли OpenSSL на сервере yum (например, Red Hat или CentOS), выполните следующую команду:

      об / мин -qa | grep -i openssl  

    Эта команда должна вернуть следующий результат:

      openssl-1.0.1e-48.el6_8.1.x86_64
    openssl-devel-1.0.1e-48.el6_8.1.x86_64
    openssl-1.0.1e-48.el6_8.1.i686  

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

      yum установить openssl openssl-devel  

    Что такое запрос на подпись сертификата (CSR)?

    Запрос на подпись сертификата (CSR) содержит наиболее важную информацию о вашей организации и домене.

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


    Примечание : запрос на подпись сертификата (CSR) — это зашифрованный блок текста, который включает информацию о вашей организации, такую ​​как страна, адрес электронной почты, полное доменное имя и т. Д. Он отправляется в центр сертификации при подаче заявки. для сертификата SSL.


    Secure Socket Layer (SSL) использует две длинные строки случайно сгенерированных чисел, которые известны как частных и открытых ключей .Открытый ключ доступен в открытом доступе, поскольку он является частью вашего SSL-сертификата и известен вашему серверу.

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

    CSR обычно содержит следующую информацию:

    Параметр Описание Пример значения
    Общее имя или полное доменное имя Полное доменное имя — это полное доменное имя вашего веб-сайта.Он должен совпадать с тем, что пользователи вводят в веб-браузере. www.phoenixnap.com
    Название организации (например, компания) Полное юридическое название вашей организации, включая суффиксы, такие как LLC, Corp и т. Д. PhoenixNAP, LLC
    Название организационной единицы Подразделение вашей организации, которое занимается выдачей этого сертификата. NOC
    Название населенного пункта (например, город) Город, в котором расположена ваша организация. Phoenix
    Штат / регион / провинция (полное название) Штат или регион, в котором расположена ваша организация. Аризона
    Код страны (двухбуквенный код) Страна, в которой находится ваша организация. Всегда вводится двухбуквенным кодом ISO. США
    Адрес электронной почты Адрес электронной почты, по которому можно связаться с веб-мастером сайта. [email protected]
    Открытый ключ Автоматически созданный ключ, который создается с помощью CSR и входит в сертификат.* / ()?., &

    Как создать CSR

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

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

    Целостность сертификата зависит от того, что секретный ключ известен только вам. В случае взлома или потери сертификата как можно скорее измените ключ сертификата с новым закрытым ключом. Большинство центров сертификации не взимают плату за эту услугу.


    Примечание : Большинство пар ключей 2048-битные. Хотя 4096-битные пары ключей более безопасны, они замедляют квитирование SSL и создают нагрузку на серверные процессоры.Из-за этого большинство веб-сайтов по-прежнему используют 2048-битные пары ключей.


    Вариант 1. Создание CSR

    Первое, что нужно сделать, — это локально сгенерировать 2048-битную пару ключей RSA. Эта пара будет содержать как ваш закрытый, так и открытый ключ. Вы можете использовать ключевой инструмент Java или какой-либо другой инструмент, но мы будем работать с OpenSSL.

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

      openssl req –out Certificigningrequest.csr -new -newkey rsa: 2048 -nodes -keyout privatekey.key  

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

      openssl req -in server.csr -noout -text  

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

    Для вашего удобства мы перечислили два (2) онлайн-инструмента для декодирования CSR:


    Примечание : Запрос на подпись сертификата, сгенерированный с помощью OpenSSL, всегда будет иметь формат файла . csr.


    Вариант 2. Создание CSR для существующего закрытого ключа

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

      openssl req -out CSR.csr -key privateKey.key -new  

    Вариант 3. Создание CSR для существующего сертификата и закрытого ключа

      openssl x509 -x509toreq -in certificate.crt -out CSR.csr -signkey privateKey.key  

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

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

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

      openssl req -newkey rsa: 2048 -nodes -keyout domain.key-x509 -days 365 -out домен.крт  

    Параметр –days установлен на 365, что означает, что сертификат действителен в течение следующих 365 дней. Параметр x509 указывает, что это будет самозаверяющий сертификат. Создается временный CSR, который используется только для сбора необходимой информации.

    Центры сертификации не проверяют самоподписанные сертификаты. Таким образом, они не так безопасны, как проверенные сертификаты. Если центр сертификации не подписал сертификат, в каждом крупном браузере будет отображаться сообщение об ошибке «ненадежный сертификат», подобное изображенному на изображении ниже.

    Если вы не хотите защищать свой закрытый ключ паролем, вы можете добавить параметр –nodes .

    Вариант 5. Создание самозаверяющего сертификата из существующего закрытого ключа и CSR

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

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

    Параметр дней установлен на 365, что означает, что сертификат действителен в течение следующих 365 дней.

    Как скопировать содержимое файла CSR

    Откройте каталог, в котором находится ваш файл CSR. Введите следующую команду:

      sudo cat  домен  .csr  

    Замените d omain параметром FQDN вашего CSR. Эта команда отобразит содержимое файла CSR. Скопируйте все содержимое, начиная с «НАЧАТЬ ЗАПРОС СЕРТИФИКАТА» и заканчивая «КОНЕЦ ЗАПРОСА СЕРТИФИКАТА».

    Продление сертификата

    — не используйте повторно старые CSR

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

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

    Как проверить свой CSR, сертификат SSL и ключ

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

    CSR

      openssl req -text -noout -verify -in server.csr  

    Эта команда проверит CSR и отобразит данные, указанные в запросе.

    Ключ

    Следующая команда проверит ключ и его действительность:

      openssl rsa -in server.key -check  

    SSL-сертификат

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

      openssl x509 -в сервере. crt -text –noout  

    Закрытый ключ

    Закрытый ключ кодируется и создается в формате PEM на основе Base-64, который не читается человеком. Вы можете открыть его в любом текстовом редакторе, но все, что вы увидите, это несколько десятков строк, которые кажутся случайными символами, заключенными в открывающие и закрывающие заголовки. См. Ниже пример закрытого ключа:

      ----- НАЧАТЬ ЧАСТНЫЙ КЛЮЧ RSA -----
    MIICXAIBAAKBgQCVqGph3S7F0CbEmQBgmbiDiOOGxhVwlG + yY / 6OBQoPKcx4Jv2h
    vLz7r54ngjaIqnqRNP7ljKjFLp5zhnAu9GsdwXbgLPtrmMSB + MVFHTJvKjQ + eY9p
    dWA3NbQusM9uf8dArm + 3VrZxNHQbVGXOIAPNHTO08cZHMSqIDQ6OvLma7wIDAQAB
    AoGAbxKPzsNh826JV2A253svdnAibeSWBPgl7kBIrR8QWDCtkH9fvqpVmHa + 6pO5
    5bShQyQSCkxa9f2jnBorKK4 + 0K412TBM / SG6Zjw + DsZd6VuoZ7P027msTWQrMBxg
    Hjgs7FSFtj76HQ0OZxFeZ8BkIYq0w + 7VQYAPBWEPSqCRQAECQQDv09M4PyRVWSQM
    S8Rmf / jBWmRnY1gPPEOZDOiSWJqIBZUBznvOPOOQSH6B + vee / q5edQA2OIaDgNmn
    AurEtUaRAkEAn7 / 65w + Tewr89mOM0RKMVpFpwNfGYAj3kT1mFEYDq + iNWdcSE6xE
    2H0w3YEbDsSayxc36efFnmr // 4ljt4iJfwJAa1pOeicJhIracAaaa6dtGl / 0AbOe
    f3NibugwUxIGWkzlXmGnWbI3yyYoOta0cR9fvjhxV9QFomfTBcdwf40FgQJAh4MG
    DBMO77w8DK2QfWBvbGN4NFTGYwWg52D1Bay68E759OPYVTMm4o / S3Oib0Q53gt / x
    TAUq7IMYHtCHZwxkNQJBAORwE + 6qVIv / ZSP2tHLYf8DGOhEBJtQcVjE7PfUjAbH5
    lr ++ 9qUfv0S13gXj5weio5dzgEXwWdX2YSL / asz5DhU =
    ----- КОНЕЦ ЧАСТНОГО КЛЮЧА RSA -----
      

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

    Проверить, совпадают ли сертификат и закрытый ключ

    Для проверки нужно распечатать контрольные суммы md5 и сравнить их. Выполните следующую команду:

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

    Устранение проблем с SSL

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

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

    Мне нужно найти мой ранее установленный закрытый ключ

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

    Nginx

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

    Перейдите к расположению корневого сервера сайта (обычно это / var / www / directory ) и откройте основной файл конфигурации сайта. Найдите директиву ssl_certificate_key , которая предоставит путь к файлу закрытого ключа.

    Если вы не можете найти директиву ssl_certificate_key , возможно, существует отдельный файл конфигурации для деталей SSL.Найдите что-нибудь описательное, например ssl.conf .

    Apache

    При использовании библиотеки OpenSSL в Apache закрытый ключ по умолчанию сохраняется в / usr / local / ssl. Запустите openssl version –a , команду OpenSSL, которая определяет, какую версию OpenSSL вы используете.

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

      OpenSSL 1.0.2g 1 декабря 2016 г.
    
    на основе: воспроизводимая сборка, дата не указана
    
    платформа: debian-amd64
    
    параметры: bn (64,64) rc4 (16x, int) des (idx, cisc, 16, int) blowfish (idx)
    
    компилятор: cc -I.-I .. -I ../ include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -
    
    D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -g -O2 -fstack-protector-
    
    strong -Wformat -Werror = безопасность формата -Wdate-time -D_FORTIFY_SOURCE = 2 -Wl, -
    
    Bсимволические-функции -Wl, -z, relro -Wa, - noexecstack -Wall -DMD32_REG_T = int -
    
    DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -
    
    DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -
    
    DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM
    
    OPENSSLDIR: "/ usr / lib / ssl"  

    Последняя строка OPENSSLDIR определяет путь к файлу.В приведенном примере это расположение по умолчанию / usr / lib / ssl .

    Если вы не сгенерировали CSR с помощью OpenSSL, вам необходимо найти и получить доступ к вашему основному файлу конфигурации Apache, а именно apache2.conf или httpd.conf . Директива SSLCertficateKeyFile укажет путь к файлу закрытого ключа.

    Windows (IIS)

    На серверах под управлением Windows Internet Information Services операционная система сохраняет закрытый ключ в скрытой папке, так же как любая обычная ОС Windows хранит важные системные данные.

    Однако, экспортировав файл .pfx , вы можете получить закрытый ключ и сертификат (ы). Для этого выполните следующие действия:

    1. Откройте консоль управления Microsoft Management Console (MMC).
    2. Расположенный в корневом каталоге консоли, разверните дерево Сертификаты (локальный компьютер).
    3. Ваш сертификат находится либо в папке Personal , либо в папке Web Hosting . Найдите сертификат, который вы ищете. Вы можете идентифицировать каждый сертификат по его общему имени (домену).
    4. Щелкните правой кнопкой мыши сертификат, который нужно экспортировать, и выберите Все задачи > Экспорт .
    5. Следуйте инструкциям мастера, чтобы экспортировать файл .pfx .

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

    Если вам нужно установить сертификат на другом сервере, на котором не установлена ​​Windows (например, Apache), вам необходимо преобразовать файл .pfx и разделить .key и.crt / .cer файлы. Вы можете сделать это с помощью OpenSSL.

    Как перенести сертификат SSL с сервера Windows на сервер, отличный от Windows?

    Чтобы переместить сертификат с сервера Windows на сервер, отличный от Windows, вам необходимо извлечь закрытый ключ из файла .pfx с помощью OpenSSL.

    1. После того, как вы загрузили файл .pfx, как описано в разделе выше, выполните следующую команду OpenSSL, чтобы извлечь закрытый ключ из файла:
      openssl pkcs12 -in mypfxfile.pfx -out privatekey.txt –nodes  

    Где mypfxfile.pfx — это резервная копия сертификатов сервера Windows.

    1. Эта команда создаст выходной файл privatekey.txt . Используйте текстовый редактор, чтобы открыть файл, и вы увидите закрытый ключ вверху списка в стандартном формате:
      ----- НАЧАТЬ RSA PRIVATE KEY -----
    (Блок зашифрованного текста)
    ----- КОНЕЦ ЧАСТНОГО КЛЮЧА RSA -----  
    1. Скопируйте закрытый ключ, включая теги «BEGIN» и «END», и вставьте его в новый текстовый файл.Сохраните текстовый файл как Your_Domain_Name.key.

    Я не могу найти свой закрытый ключ

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

    Логическим шагом будет поиск файла .key . В некоторых случаях OpenSSL сохраняет файл .key в том же каталоге, откуда была запущена команда OpenSSL –req .

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

    Команды OpenSSL для преобразования CSR

    Если вы работаете с серверами Apache, запросы на подпись сертификатов (CSR) и ключи хранятся в формате PEM. Но что, если вы хотите перенести CSR на сервер Tomcat или Windows IIS? Что ж, вам нужно будет преобразовать стандартный файл PEM в файл PFX.Следующие команды помогут вам в этом.


    Примечание. Используйте параметр -nodes , если вы не хотите шифровать файл .key. Если вы не используете этот параметр, вам нужно будет указать пароль.


    Преобразование PEM CSR и закрытого ключа в PKCS12 (.pfx .p12)

    Файлы

    FKCS12 используются для экспорта / импорта сертификатов в Windows IIS.

      openssl pkcs12 -inkey domain.key -in domain.crt -export -out домен.pfx  

    При этом закрытый ключ и CSR преобразуются в один файл .pfx. Вы можете настроить парольную фразу для экспорта, но можете оставить это поле пустым. Обратите внимание, что, объединив непрерывные символьные строки сертификатов в один файл PEM, вы можете экспортировать цепочку сертификатов в формат файла .pfx.

    Преобразование PKCS12 в PEM CSR

      openssl pkcs12 -в domain.pfx -nodes -out domain.combined.crt  

    Если файл .pfx содержит цепочку сертификатов, файл.crt файл PEM также будет содержать несколько элементов.

    преобразовать PEM в DER

    DER — это двоичный формат, обычно используемый в Java. Чтобы преобразовать файл ASCII PEM в DER, используйте следующую команду OpenSSL:

      openssl x509 -в domain.crt -outform der -out domain.der  

    преобразовать DER в PEM

    Если вам нужно преобразовать файл .der в PEM, используйте следующую команду OpenSSL:

      openssl x509 -inform der -in домен.der -out domain.crt  

    Зашифровать незашифрованный закрытый ключ

    Следующая команда OpenSSL примет незашифрованный закрытый ключ и зашифрует его заданной вами парольной фразой.

      openssl rsa -des3 -in unencrypted.key -out encrypted.key  

    Задайте парольную фразу для шифрования закрытого ключа.

    Расшифровать зашифрованный закрытый ключ

    Следующая команда OpenSSL берет зашифрованный закрытый ключ и расшифровывает его.

      openssl rsa -in encrypted.key -out decrypted.key  

    При появлении запроса введите парольную фразу для расшифровки закрытого ключа.

    Заключение

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

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

    Пример: сертификат 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. Например, выполните следующую команду:

      CD 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. Выполните действия, описанные в разделе «Создание запроса на подпись сертификата для отправки в центр сертификации» выше.

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

      [требуется]
    default_bits = 2048
    default_keyfile = server-key.pem
    отличительное_имя = субъект
    req_extensions = req_ext
    x509_extensions = x509_ext
    string_mask = utf8only
    
    # DN субъекта может быть сформировано с использованием X501 или RFC 4514 (описание см. В RFC 4519).# Это своего рода мэшап. Например, RFC 4514 не предоставляет адрес электронной почты.
    [ предмет ]
    countryName = Название страны (двухбуквенный код)
    countryName_default = США
    
    stateOrProvinceName = Название штата или провинции (полное имя)
    stateOrProvinceName_default = NY
    
    localityName = Название населенного пункта (например, город)
    localityName_default = Нью-Йорк
    
    organizationName = Название организации (например, компания)
    organizationName_default = Пример, ООО
    
    # Используйте здесь понятное имя, потому что оно представляется пользователю.DNS сервера
    # имена помещаются в альтернативные имена субъектов. Кроме того, DNS-имена здесь устарели.
    # как IETF, так и CA / Browser Forums. Если вы разместите здесь DNS-имя, вы
    # также должен включать DNS-имя в SAN (в противном случае Chrome и другие
    # строго соблюдать базовые требования CA / браузера не удастся).
    commonName = Общее имя (например, полное доменное имя сервера или ВАШЕ имя)
    commonName_default = Пример компании
    
    emailAddress = Адрес электронной почты
    emailAddress_default = test @ example.ком
    
    # Раздел x509_ext используется при генерации самоподписанного сертификата. То есть openssl req -x509 ...
    [x509_ext]
    
    subjectKeyIdentifier = хэш
    AuthorityKeyIdentifier = keyid, эмитент
    
    # Вам нужна только цифровая подпись, указанная ниже. * Если * вы не разрешаете
    # Транспорт ключа RSA (т. Е. Вы используете эфемерные наборы шифров), затем
    # опускаем keyEncipherment, потому что это ключевой транспорт.
    basicConstraints = CA: FALSE
    keyUsage = digitalSignature, keyEncipherment
    subjectAltName = @alternate_names
    nsComment = "Сертификат, созданный OpenSSL"
    
    # RFC 5280, раздел 4.2.1.12 делает EKU необязательным
    # CA / Browser Baseline Requirements, Приложение (B) (3) (G) сбивает меня с толку
    # В любом случае вам, вероятно, понадобится только serverAuth.
    # extendedKeyUsage = serverAuth, clientAuth
    
    # Раздел req_ext используется при генерации запроса на подпись сертификата. То есть, openssl req ...
    [req_ext]
    
    subjectKeyIdentifier = хэш
    
    basicConstraints = CA: FALSE
    keyUsage = digitalSignature, keyEncipherment
    subjectAltName = @alternate_names
    nsComment = "Сертификат, созданный OpenSSL"
    
    # RFC 5280, раздел 4.2.1.12 делает EKU необязательным
    # CA / Browser Baseline Requirements, Приложение (B) (3) (G) сбивает меня с толку
    # В любом случае вам, вероятно, понадобится только serverAuth.
    # extendedKeyUsage = serverAuth, clientAuth
    
    [альтернативные_имя]
    
    DNS.1 = example.com
    DNS.2 = www.example.com
    DNS.3 = mail.example.com
    DNS.4 = ftp.example.com
    
    # Добавьте их, если они вам нужны. Но обычно они вам не нужны или
    # они нужны в производстве. Они могут понадобиться вам для разработки.
    # DNS.5 = localhost
    # DNS.6 = localhost.localdomain
    # DNS.7 = 127.0.0.1
    
    # IPv6 localhost
    # DNS.8 = :: 1
      

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

      # IPv4 localhost
    # IP.1 = 127.0.0.1
    
    # IPv6 localhost
    # IP.2 = :: 1
      

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

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

    Создание

    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]

    Как сгенерировать самозаверяющий сертификат и закрытый ключ с помощью OpenSSL — Справочный центр GSX

    Последнее обновление: . Автор: Кристиан Стоукс .

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

    Следуйте этой статье, если вам нужно сгенерировать закрытый ключ и самозаверяющий сертификат, например, для защиты доступа к GSX Gizmo с помощью HTTPS.

    GSX Gizmo через HTTPS | OpenSSL 1.1.0g

    Инструкции

    Создание самозаверяющего сертификата с помощью OpenSSL:

    Win32 OpenSSL v1.1.0 + для Windows можно найти здесь.

    1. Откройте проводник Windows.
    2. Перейдите в каталог bin OpenSSL.
      • c: \ OpenSSL \ bin \ в нашем примере.
    3. Щелкните правой кнопкой мыши файл openssl.exe и выберите Запуск от имени администратора .
    4. Введите следующую команду, чтобы начать создание сертификата и закрытого ключа:
      • req -x509 -sha256 -nodes -days 365 -newkey rsa: 2048 -keyout privateKey.key -out certificate.crt
    5. Затем вам будет предложено ввести соответствующую информацию об отличительном имени (DN), всего семь полей:
    6. После завершения вы найдете сертификат.crt и файлы privateKey.key, созданные в каталоге \ OpenSSL \ bin \.

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

    Внешние статьи по OpenSSL


    Была ли эта статья полезной?

    86 из 116 нашли этот материал полезным

    Как создать сертификаты SSL для разработки | Патрик Калкман

    Самозаверяющий сертификат можно создать на любом компьютере.Я использую macOS с версией 1.1.1 OpenSSL. OpenSSL — это полнофункциональный инструментарий и библиотека криптографии. Для большинства операционных систем существуют готовые бинарные пакеты OpenSSL.

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

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

    1. Создание закрытого ключа

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

     openssl genpkey -algorithm RSA -des3 -out private-key.pem -pkeyopt rsa_keygen_bits: 4096 

    genpkey — Команда OpenSSL для выполнения в этом случае генерации закрытого ключа

    алгоритм RSA — Какой открытый -ключевой алгоритм для использования. Доступны и другие варианты, такие как RSA-PSS, EC, X25519, X448, ED25519 и ED448.

    -des3 — Этот параметр указывает, что OpenSSL должен шифровать закрытый ключ с помощью Triple-DES. После выполнения команды он спрашивает, какой пароль использовать.

    out privateKey.pem — OpenSSL должен хранить закрытый ключ в файле с именем privateKey.pem .

    pkeyopt rsa_keygen_bits: 4096 — Задает количество бит, которое должно использоваться сгенерированным ключом. Я использую 4096 бит.

    Формат выходного файла privateKey.pem по умолчанию — файл PEM. С genpkey OpenSSL использует синтаксис PKCS # 8 для хранения ключа в файле.

    Я использую genpkey вместо genrsa , потому что он использует более разумные значения по умолчанию.

    Например, количество битов по умолчанию сгенерированного ключа genrsa составляет 512 бит. Которая, согласно ars TECHNICA в 2015 году, могла быть взломана за четыре часа с помощью Amazon EC2 за 75 долларов.

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

    CSR подобен порядку создания сертификата. Если вам нужен официальный сертификат SSL, вы отправляете его в официальный центр сертификации (ЦС). Они используют CSR для создания официального сертификата.

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

    Ранее я описал две основные причины использования сертификата, шифрования и идентификации. OpenSSL задаст ряд вопросов, чтобы узнать, какую информацию поместить в CSR.

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

     openssl req -new -key закрытый ключ.pem -out csr.pem 

    req — Создать запрос сертификата в формате PKCS # 10.

    -new — Создать новый запрос сертификата. Спросите у пользователя всю необходимую информацию.

    -key — Имя используемого закрытого ключа. Закрытый ключ был сгенерирован на предыдущем шаге.

    -out — Имя файла созданного запроса сертификата.

    OpenSSL задаст следующие вопросы:

    • Общее имя: полное доменное имя (полное доменное имя), которое вы хотите защитить с помощью сертификата.
    • Организация: полное название вашей организации. Важно только для доверенных сертификатов.
    • Организационное подразделение (OU): Ваш отдел. Важно только для доверенных сертификатов.
    • Город или местность: город, в котором расположена ваша организация.
    • Штат или провинция: штат или провинция, в которой расположена ваша организация.
    • Страна: официальный двухбуквенный код страны, в которой расположена ваша организация.

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

    С помощью закрытого ключа из шага 1 и запроса сертификата из шага 2 вы можете создать самозаверяющий сертификат.Следующая команда OpenSSL создает сертификат.

     openssl x509 -in csr.pem -out certificate.pem -req -signkey private-key.pem -days 365 

    x509 — Выполнить команду сертификата.

    -in — указывает запрос на подпись сертификата ( csr.pem ).

    -out — Имя файла для сохранения сгенерированного сертификата. В данном случае certificate.pem .

    -req — Указать OpenSSL, что ввод является CSR.

    -signkey — Самостоятельная подпись запроса сертификата с использованием данного файла private-key.pem .

    -days — количество дней, в течение которых сгенерированный сертификат действителен. Нормальные значения — 365, 730 и 1095 дней, чтобы указать продолжительность в один, два или три года.

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



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

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