Создание самоподписанных сертификатов SSL для работы по HTTPS
Начиная с версии Chrome 58 и Firefox 48 сертификаты, в которых не указан атрибут SAN (SubjectAltName) будут приводить к ошибке «Ваше соединение не защищено».
начало внимание
Самоподписанный сертификат SSL не обеспечивает надежную защиту данных от злоумышленников. Рекомендуется использовать коммерческие SSL-сертификаты от доверенных центров сертификации, таких как Comodo, Symantec, Thawte и т. д.
конец внимание
Чтобы создать сертификат с атрибутом SAN, убедитесь, что в вашей системе установлен OpenSSL, а затем выполните следующие действия:
- Создаем сертификат корневого CA. На его основе будут выпускаться все остальные сертификаты. Заполните появившиеся поля данными, в поле Common Name введите полное доменное имя сервера:
sudo openssl genrsa -des3 -out /etc/ssl/private/rootCA. key 2048
sudo openssl req -x509 -new -nodes -key /etc/ssl/private/rootCA.key -sha256 -days 365 -out /etc/ssl/certs/rootCA.pem
- Создаем файл конфигурации /etc/ssl/v3.ext со следующим содержанием, где mydomain.com — полное доменное имя сервера:
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = mydomain.com
- Создаем подписанный сертификат, используя файл конфигурации и корневые сертификаты. Заполните появившиеся поля данными, в поле Common Name введите полное доменное имя сервера:
sudo openssl genrsa -out /etc/ssl/private/selfsigned.key 2048
sudo openssl req -new -key /etc/ssl/private/selfsigned.key -out /etc/ssl/certs/selfsigned.csr
sudo openssl x509 -req -in /etc/ssl/certs/selfsigned. csr -CA /etc/ssl/certs/rootCA.pem -CAkey /etc/ssl/private/rootCA.key -CAcreateserial -out /etc/ssl/certs/selfsigned.crt -days 365 -sha256 -extfile /etc/ssl/v3.ext
- Добавляем сертификат rootCA.pem в список доверенных корневых центров сертификации.
- При установке или обновлении ELMA365 на сервере используется ключ selfsigned.key, сертификат selfsigned.crt и сертификат корневого CA rootCA.pem.
- При выпуске нового сертификата, вам потребуется обновление сертификатов. Для этого используется следующая команда:
sudo elma365ctl reload-cert
migration-to-another-server.html renew-ssl-certificate.
Генерация SSL-сертификатов для Windows и Android
Что такое SSL-сертификат и как его сгенерировать и использовать для локальной разработки, в том числе — для тестирования на мобильных устройствах, разбирает старший веб-разработчик Noveo Антон.
Антон
Noveo Senior Developer
Немного теории
SSL-сертификат — это цифровой сертификат, позволяющий убедиться в том, что сервер, передавший данные клиенту, не подменен и данные передал именно он.
Сертификат состоит из закрытого ключа, который держится в секрете и с помощью которого данные шифруются сервером, и самого сертификата с открытым ключом, с помощью которого данные расшифровываются клиентом. Не имея закрытого ключа, невозможно зашифровать данные таким образом, чтобы клиент расшифровал их тем же открытым ключом. Главная информация в сертификате — это то, кому он выдан, то есть доменное имя.
Также в сертификат может кодироваться информация об издателе (сертификате), которым был подписан сертификат сервера. Это информация имеет контрольную подпись, которая может быть сгенерирована только обладателем закрытого ключа сертификата издателя. Таким образом, только издатель может подписать и сгенерировать валидный сертификат.
Клиент считает соединение защищенным, если, проверяя цепочку сертификатов, доходит до корневых доверенных центров сертификации, встроенных в систему или браузер, которые, в свою очередь, являются самоподписанными.
Для чего это нужно?
Приложения, требующие наличие валидного сертификата при локальной разработке:
- PWA-приложения,
- приложения, использующие WebRTC.
Есть два способа выполнить эту задачу:
- Сгенерировать самоподписанный сертификат и добавить его в список доверенных корневых центров сертификации; таким образом устройство будет считать его валидным. Как следует из названия, это сертификат, который подписан закрытым ключом его самого же.
- Сгенерировать корневой сертификат и добавить его в список доверенных корневых центров сертификации, далее сгенерировать сертификат сервера и подписать его ранее созданным корневым сертификатом.
Подготовка
Нам понадобится OpenSSL. Инсталляторы-бинарники для Windows.
Файл конфигурации openssl.cfg
[ req_distinguished_name ] countryName = CO stateOrProvinceName = ST localityName = ST organizationName = O #################################################################### # Extensions for when we sign normal certs (specified as default) [ usr_cert ] basicConstraints = CA:false subjectKeyIdentifier = hash authorityKeyIdentifier = keyid,issuer subjectAltName = email:move #################################################################### # Same as above, but cert req already has SubjectAltName [ usr_cert_has_san ] basicConstraints = CA:false subjectKeyIdentifier = hash authorityKeyIdentifier = keyid,issuer #################################################################### # Extensions to use when signing a CA [ v3_ca ] subjectKeyIdentifier = hash authorityKeyIdentifier = keyid:always,issuer:always basicConstraints = CA:true subjectAltName=email:move #################################################################### # Same as above, but CA req already has SubjectAltName [ v3_ca_has_san ] subjectKeyIdentifier = hash authorityKeyIdentifier = keyid:always,issuer:always basicConstraints = CA:true [ req ] prompt = no default_bits = 4096 distinguished_name = req_distinguished_name req_extensions = req_ext [ req_ext ] subjectAltName = @alt_names [ alt_names ] DNS.0 = example.com DNS.1 = *.example.com
Генерируем самоподписанный сертификат
1. Генерируем приватный ключ:
mkdir example.com openssl genrsa -out example.com/example.com.key
Результат:
Generating RSA private key, 2048 bit long modulus (2 primes) ........................+++++ ..........................................................+++++ e is 65537 (0x010001)
2. Создаем запрос на сертификат:
openssl req -new -key example.com/example.com.key -out example.com/example.com.csr -config openssl.cfg -subj "/CN=example.com certificate"
3. В файле конфигурации openssl.cfg нужно прописать доменное имя или несколько имен в блоке [alt_names].Раньше поддерживалось только одно имя, которое задавалось в поле CN, но сейчас можно указать несколько имен, а также сделать wildcard-сертификат на все поддомены.
[ alt_names ] DNS.0 = example.com DNS.1 = *.example.com
4. Генерируем сертификат:
openssl x509 -req -in example.com/example.com.csr -extensions req_ext -extfile openssl.cfg -signkey example.com/example.com.key -out example.com/example.com.crt -days 1825
5. Проверяем результат:
openssl x509 -in example.com/example.com.crt -text
Результат:
Certificate: Data: Version: 3 (0x2) Serial Number: 0f:63:6b:b8:76:27:71:d1:e9:f3:53:01:11:11:7c:52:d6:c7:ea:c6 Signature Algorithm: sha256WithRSAEncryption Issuer: CN = example.com certificate Validity Not Before: Sep 27 05:08:48 2022 GMT Not After : Sep 26 05:08:48 2027 GMT Subject: CN = example.com certificate Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public-Key: (2048 bit) Modulus: 00:c9:...:3b:24: 26:0f Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Subject Alternative Name: DNS:example.com, DNS:*.example.com Signature Algorithm: sha256WithRSAEncryption 20:a9:...:fe:fd: 5f:30:e8:4a -----BEGIN CERTIFICATE----- MIIC+zCCAeO…8w6Eo= -----END CERTIFICATE-----
Теперь у вас есть сам сертификат example.com.crt и файл ключа example.com.key, которые можно использовать в ваших приложениях.
Генерируем корневой сертификат + сертификат сервера
1. Генерируем приватный ключ корневого сертификата:
mkdir ca openssl genrsa -out ca/ca.key
Результат:
Generating RSA private key, 2048 bit long modulus (2 primes) ...........................................+++++ ...................................+++++ e is 65537 (0x010001)
2. Создаем сертификат:
openssl req -x509 -new -key ca/ca.key -days 1825 -out ca/ca.crt -extensions v3_ca_has_san -config openssl.cfg -subj "/CN=Root CA
3. Повторяем шаги 1-5 инструкции про самоподписанный сертификат.
4. Генерируем сертификат, подписанный нашим корневым сертификатом:
openssl x509 -req -in example. com/example.com.csr -CA ca/ca.crt -CAkey ca/ca.key -CAcreateserial -extensions req_ext -extfile openssl.cfg -out example.com/example.com.ca.crt -days 1825
5. Проверяем результат:
openssl x509 -in example.com/example.com.ca.crt -text
Результат:
Certificate: Data: Version: 3 (0x2) Serial Number: 27:f4:ec:08:a8:36:b8:38:81:53:d9:8f:b5:fe:91:13:79:f0:9e:dc Signature Algorithm: sha256WithRSAEncryption Issuer: CN = Root CA Validity Not Before: Sep 27 05:46:19 2022 GMT Not After : Sep 26 05:46:19 2027 GMT Subject: CN = example.com certificate Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public-Key: (2048 bit) Modulus: 00:c9:...:26:0f Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Subject Alternative Name: DNS:example. com, DNS:*.example.com Signature Algorithm: sha256WithRSAEncryption 9e:72:...:57:17 -----BEGIN CERTIFICATE----- MIIC…JXFw== -----END CERTIFICATE-----
Теперь у вас есть сертификат сервера example.com.crt в комплекте с ключом example.com.key, а также корневой сертификат ca.crt в комплекте с ключом ca.key. Если добавить корневой сертификат в хранилище корневых сертификатов в вашей системе или браузере, то это сделает валидными все сертификаты, подписанные им.
Добавляем корневой сертификат в Windows
Браузер Chrome использует системное хранилище сертификатов:
Добавляем корневой сертификат в браузере Mozilla
Возможно, придется отключить DNS over HTTPS, чтобы браузер использовал системный DNS, который, в свою очередь, использует файл hosts.
Использование на примере create-react-app
1. Добавляем в .env следующие переменные:
HTTPS=true SSL_CRT_FILE=certs/example.com.crt SSL_KEY_FILE=certs/example. com.key HOST=example.com
2. Добавляем в файл host (C:WindowsSystem32Driversetchosts для Windows, /etc/hosts для Ubuntu) строку:
192.168.2.116 example.com
чтобы example.com резолвился на локальный адрес компьютера (свой можно посмотреть в свойствах подключения).
3. Запускаем приложение и видим, что соединение защищено и сертификат валидный:
Как установить сертификат на мобильное устройство Android?
1. Поместить телефон и ПК в одну локальную сеть.
2. Использовать create-react-app.
3. Положить в папку public ca.crt.
4. Прописать в .env адрес компьютера в локальной сети:
HOST=192.168.2.116
5. Запустить create-react-app без https.
6. Открыть на телефоне http://192.168.2.116:3000/ca.crt и установить сертификат:
Как прописать домен на Android устройстве?
Для того, чтобы тестировать приложения, нужно обеспечить, чтобы ваше доменное имя резолвилось на локальный адрес компьютера. Тут есть два решения:
1. Имея root-доступ на смартфоне, отредактировать файл hosts.
2. Если прав root нет, то есть более элегантное решение — воспользоваться приложением Postern. Это VPN-сервер, запускаемый на вашем устройстве и способный модифицировать трафик, в том числе перехватывать DNS-запросы и отвечать на них. Через него можно установить соответствие доменного имени example.com ip-адресу вашего компьютера в локальной сети, где запущен webpack-dev-server:
То, что Postern запущен, можно понять по иконке замка в статус-баре (VPN включен, все запросы идут через него).
После того, как все действия проделаны, можно открыть в браузере ваше приложение:
Готово! Теперь вы не только знаете в теории, что такое SSL-сертификат, но и умеете с ним работать на практике.
Создайте сертификат SSL за 5 простых шагов
1 сентября 2022 г.SSL-сертификаты являются обычной рекомендацией по обеспечению безопасности, когда речь идет о размещении данных на сервере. В частности, SSL-сертификаты обеспечивают сквозное шифрование для веб-серверов, когда речь идет о передаче данных по протоколу HTTP. Эта безопасность обычно отображается путем изменения URL-адреса с http на https. Такой значок, как замок, также может […]
SSL-сертификаты являются обычной рекомендацией по обеспечению безопасности, когда речь идет о размещении данных на сервере. В частности, SSL-сертификаты обеспечивают сквозное шифрование для веб-серверов, когда речь идет о передаче данных по протоколу HTTP. Эта безопасность обычно отображается путем изменения URL-адреса с http на https. Значок, такой как замок, также может использоваться для визуального обозначения того, что сайт или сервер защищены.
FileCloud — это решение для совместной работы с контентом, которое может быть размещено либо на частной инфраструктуре, либо у нас. Для экземпляров, размещенных у себя, FileCloud рекомендует установить и поддерживать активный сертификат SSL. Это важная мера, которую вы можете предпринять для обеспечения большей безопасности ваших данных.
В этом сообщении блога рассказывается, как приобрести, настроить и проверить SSL у доверенного стороннего поставщика за пять простых шагов.
Шаг 1. Создайте CSR для SSL-сертификата
На сервере, где будет установлен SSL-сертификат, создается запрос CSR или подписи сертификата. CSR создается Центром сертификации и содержит следующую информацию:
- Официальное название предприятия или организации
- Доменное имя
- Идентификация лица или подразделения, ответственного за управление сертификатом
- Географическое положение (город, штат и страна)
- Адрес электронной почты
Для этих пошаговых инструкций мы используем доменное имя example.com в демонстрационных целях.
Чтобы сгенерировать CSR, выполните следующую команду в Windows CMD или Linux Shell:
openssl req -new -newkey rsa:4096 -nodes -keyout example.key -out example.csr
Введите необходимую информацию для создания CSR для SSL:
- Название страны (двухбуквенный код): [AU]
- Название штата или провинции (полное название): [Some-State]
- Название местности (например, город, округ): []
- Название организации (например, компания): [Internet Widgits Pty Ltd]
- Название организационной единицы (например, секция, отдел, отдел): []
- Обычное имя (например, полное доменное имя сервера или ВАШЕ имя): []
Если вы создаете CSR для сертификата с подстановочным знаком, общее имя должно быть *. example.com
Шаг 2. Приобретите сертификат SSL у желаемого поставщика
В этом руководстве мы приобретаем подстановочный знак COMODO SSL от SSLBUY.com. Вы можете применить те же действия к любому поставщику SSL.
Войдите на платформу выбранного поставщика, затем приобретите SSL.
Шаг 3: Настройка и проверка SSL
Нажмите «Настроить SSL» и отправьте CSR, созданный ранее.
Нажмите «Продолжить».
После этого шага вы увидите информацию из CSR и убедитесь, что указанный CSR правильный.
Выберите метод подтверждения SSL одним из двух способов:
- Добавьте CNAME в запись DNS домена, для которого требуется SSL
- Утверждение по электронной почте
В этом случае мы выбираем подтверждение по электронной почте, а веб-сервер должен быть Apache.
Введите адрес электронной почты администратора и подтвердите адрес электронной почты администратора, повторно введя его, как показано на снимке экрана ниже:
Шаг 4: Завершите проверку
Если вы выбрали проверку электронной почты вместо проверки DNS, вы будете перенаправлены на Сайт провайдера SSL, чтобы ввести адрес электронной почты для подтверждения.
После того, как вы выполните шаги проверки у поставщика SSL, вы получите подтверждение по электронной почте для SSL. Это электронное письмо служит подтверждением того, что домен находится под вашим контролем. В письме будет ссылка для проверки; нажмите на ссылку и введите проверочный код в указанном месте.
Шаг 5. Загрузите сертификат SSL
После завершения проверки загрузите сертификат SSL у поставщика SSL. Кроме того, электронное письмо может быть отправлено на адрес электронной почты администратора с прикрепленными SSL-сертификатами.
Заключение
После загрузки SSL установите сертификаты SSL на свой сервер FileCloud, следуя нашей документации, в зависимости от вашей операционной системы: Windows | Линукс. Вы также можете ознакомиться с этим сообщением в блоге, в котором приводится конкретный пошаговый пример того, как настроить и установить подстановочный SSL-сертификат «Let Encrypt» с помощью Ubuntu 20.04 LTS на мультитенантном сайте.
При наличии SSL-сертификата вы можете быть уверены, что передаваемые данные зашифрованы, что создает еще один уровень защиты важных файлов и процессов.
Статья написана Нандакумаром Читрой Суреш, руководителем службы технической поддержки | Под редакцией Кэти Герхардт, младшего менеджера по маркетингу продуктов
Кэти Герхардт
Младший менеджер по маркетингу продуктовПример: SSL-сертификат — создание ключа и CSR
Важно! Этот пример предназначен для предоставления общих рекомендаций ИТ-специалистам, которые имеют опыт работы с требованиями и настройкой SSL. Процедура, описанная в этой статье, является лишь одним из многих доступных методов, которые вы можете использовать для создания необходимых файлов. Описанный здесь процесс следует рассматривать как пример, а не как рекомендацию.
Когда вы настраиваете Tableau Server для использования шифрования Secure Sockets Layer (SSL), это помогает обеспечить безопасность доступа к серверу и защиту данных, пересылаемых между Tableau Server и Tableau Desktop.
Ищете сервер Tableau для Linux? См. пример: SSL-сертификат – создание ключа и CSR (ссылка открывается в новом окне).
Tableau Server использует Apache, который включает OpenSSL(ссылка открывается в новом окне). Вы можете использовать набор инструментов OpenSSL для создания файла ключа и запроса на подпись сертификата (CSR), который затем можно использовать для получения подписанного сертификата SSL.
Действия по созданию ключа и CSR
Чтобы настроить Tableau Server для использования SSL, у вас должен быть SSL-сертификат. Чтобы получить SSL-сертификат, выполните следующие действия:
- Установите переменную среды конфигурации OpenSSL (необязательно).
- Создать файл ключа.
- Создайте запрос на подпись сертификата (CSR).
- Отправьте CSR в центр сертификации (ЦС) для получения сертификата SSL.
- Используйте ключ и сертификат, чтобы настроить 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 не заключайте путь к файлу в кавычки.
Сгенерируйте ключ
Сгенерируйте файл ключа, который вы будете использовать для создания запроса на подпись сертификата.
Откройте командную строку от имени администратора и перейдите к Каталог Apache для сервера Tableau. Например, выполните следующую команду:
CD C:\Program Files\Tableau\Tableau Server\packages\apache.<код_версии>\bin
Выполните следующую команду, чтобы создать файл ключа:
openssl.exe genrsa -out
.key 4096 Примечание: Эта команда использует для ключа длину 4096 бит. Вы должны выбрать битовую длину не менее 2048 бит, потому что связь, зашифрованная с более короткой битовой длиной, менее безопасна. Если значение не указано, используется 512 бит.
Создание запроса на подпись сертификата для отправки в центр сертификации
Используйте файл ключа, созданный в описанной выше процедуре, для создания запроса на подпись сертификата (CSR). Вы отправляете CSR в центр сертификации (CA) для получения подписанного сертификата.
Важно: Если вы хотите настроить сертификат SAN для использования SSL для нескольких доменов, сначала выполните шаги, описанные в разделе Для сертификатов SAN: измените файл конфигурации OpenSSL ниже, а затем вернитесь сюда, чтобы создать CSR.
Выполните следующую команду, чтобы создать файл запроса на подпись сертификата (CSR):
openssl.exe req -new -key yourcertname.key -out yourcertname.csr
Если вы не установили переменную среды конфигурации OpenSSL,
OPENSSL_CONF
, вы можете увидеть одно из следующих сообщений:Сообщение об ошибке о невозможности загрузки информации о конфигурации. В этом случае повторите приведенную выше команду со следующим параметром:
-config ..\conf\openssl.cnf
.Предупреждение о том, что каталог
/usr/local/ssl
не найден. Этот каталог не существует в Windows, и вы можете просто проигнорировать это сообщение. Файл успешно создан.
Чтобы установить переменную среды конфигурации OpenSSL, см. раздел Установка переменной среды конфигурации OpenSSL (необязательно) в этой статье.
При появлении запроса введите необходимую информацию.
Примечание: Для Common Name введите имя сервера Tableau. Имя сервера Tableau — это URL-адрес, который будет использоваться для доступа к серверу Tableau. Например, если вы попадете на сервер Tableau, набрав
tableau.example.com
в адресной строке браузера, тоtableau.example.com
является общим именем. Если общее имя не соответствует имени сервера, возникнут ошибки, когда браузер или рабочий стол Tableau попытаются подключиться к серверу Tableau.
Отправьте CSR в центр сертификации для получения SSL-сертификата.
Отправьте CSR в коммерческий центр сертификации (CA) для запроса цифрового сертификата. Дополнительную информацию см. в статье Википедии Центр сертификации (ссылка открывается в новом окне) и во всех связанных статьях, которые помогут вам решить, какой центр сертификации использовать.
Используйте ключ и сертификат для настройки сервера Tableau
Если у вас есть и ключ, и сертификат от ЦС, вы можете настроить сервер Tableau для использования SSL. Инструкции см. в разделе Настройка внешнего SSL.
Для сертификатов SAN: измените файл конфигурации OpenSSL
При стандартной установке OpenSSL некоторые функции не включены по умолчанию. Чтобы использовать SSL с несколькими доменными именами, перед созданием CSR выполните следующие действия, чтобы изменить файл openssl.cnf .
Откройте проводник Windows и перейдите к папке Apache conf для сервера Tableau.
Например:
C:\Program Files\Tableau\Tableau Server\<код_версии>\apache\conf
Откройте openssl.cnf в текстовом редакторе и найдите следующую строку:
req_extensions = v3_req
Эта строка может быть закомментирована знаком решетки (#) в начале строки.
Если строка закомментирована, раскомментируйте ее, удалив # и пробел символов с начала строки.
Перейти к разделу [ v3_req ] файла. Первые несколько строк содержат следующий текст:
.# Расширения для добавления к запросу сертификата
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEnciphermentПосле строки keyUsage вставьте следующую строку:
subjectAltName = @alt_names
Если вы создаете самозаверяющий сертификат SAN, выполните следующие действия, чтобы дать сертификату право подписывать сертификат:
Добавьте
cRLSign
иkeyCertSign
в строку keyUsage , чтобы она выглядела следующим образом:keyUsage = nonRepudiation, digitalSignature, keyEncipherment, cRLSign, keyCertSign
После строки keyUsage добавьте следующую строку:
subjectAltName = @alt_names
В разделе [alt_names] укажите доменные имена, которые вы хотите использовать с SSL.