- Что делать если нет сертификата в запросах заявок на сертификат
- Что такое сертификат ssl? как работает ssl?
- Что такое запрос на подпись сертификата (csr)?
- Почему?
- Openssl -что это? 21 пример команд openssl, которые помогут вам на практике
- Apache
- Nginx
- Pkcs # 7 / p7b (.p7b, .p7c) в pfx
- Ssl сертификат
- Windows (iis)
- В чем разница между tls и ssl?
- Вариант 4: генерация самоподписанного(self-signed) сертификата
- Генерирование ssl-сертификата
- Генерирование запроса для существующего закрытого ключа
- Дешифровка закрытого ключа
- Для чего нужно преобразование сертификатов
- Закрытый ключ
- Как найти свой ранее установленный закрытый ключ?
- Как переместить ssl-сертификат с сервера windows на сервер, отличный от windows?
- Как скопировать содержимое файла csr
- Как создать csr
- Как создать сертификат ssl
- Команды openssl для конвертации csr
- Конвертация to pkcs7 в pem
- Конвертировать pem в der
- Преобразование crt в pem
- Преобразование p7b в pem
- Преобразование pem в key
- Преобразование pfx в pem
- Проверить версию openssl
- Проверка закрытого ключа
- Проверка подписи сертификата
- Продление сертификата – не используйте старые csr повторно
- Система не извлекает закрытый ключ автоматически
- Совпадение ключа с сертификатом и запросом
- Создание закрытого ключа
- Уровни проверки ssl-сертификатов
- Установка openssl в debian и ubuntu
- Установка openssl в red hat и centos
- Файл cer
- Файл pem
- Формат pkcs#7 или p7b
- Шифрование закрытого ключа
- Расширенная проверка (ev ssl – extended validation)
- Заключение
Что делать если нет сертификата в запросах заявок на сертификат
Бывают ситуации, что на вашем сервере по каким-то причинам, в папке запросы на сертификат, может не оказаться вашего, в этом случае вам необходимо будет перейти в этой же mmc в раздел “Личное-Сертификаты”. Выбираем нужный и делаем экспорт.
Появится мастер экспорта сертификатов.
Обратите внимание, что в pfx выгрузить не получится, но это не страшно, нам подойдет и p7b, но с включенной галкой “Включить по возможности все сертификаты в путь сертификации”
Указываем путь сохраняемого файла.
Видим, что все успешно выполнено.
Что такое сертификат ssl? как работает ssl?
Сертификат Secure Socket Layer (SSL) – это протокол безопасности, который защищает данные между двумя компьютерами с использованием шифрования.
Проще говоря, сертификат SSL – это файл данных, который в цифровом виде связывает криптографический ключ с сервером или доменом, а также с названием и местонахождением организации.
Как правило, сертификаты SSL используются на веб-страницах, которые передают и получают конфиденциальные данные конечного пользователя, такие как номер социального страхования, данные кредитной карты, домашний адрес или пароль. Онлайн формы оплаты являются хорошим примером и обычно шифруют вышеупомянутую деликатную информацию с использованием 128 или 256-битной технологии SSL.
Сертификаты SSL обеспечивают идентификацию удаленного компьютера, чаще всего сервера, но также подтверждают идентификацию вашего компьютера с удаленным компьютером для установления безопасного соединения. Обеспечение безопасности в Интернете всегда было улицей с двусторонним движением, и благодаря SSL-шифрованию сервер «пожимает руку» вашему персональному компьютеру, и обе стороны знают, с кем они общаются.
Что такое запрос на подпись сертификата (csr)?
Запрос на подпись сертификата (CSR – Certificate Signing Request) содержит наиболее важную информацию о вашей организации и домене. Это зашифрованный блок текста, который включает информацию о вашей организации, такую как страна, адрес электронной почты, полное доменное имя и так далее Он отправляется в центр сертификации при подаче заявки на сертификат SSL.
Обычно вы генерируете пару CSR и ключ локально на сервере, где будет установлен сертификат SSL. Однако это не строгое правило. Вы можете сгенерировать пару CSR и ключ на одном сервере и установить сертификат на другом. Однако это усложняет ситуацию. Мы рассмотрим и этот сценарий.
SSL использует две длинные строки случайно сгенерированных чисел, которые известны как закрытые и открытые ключи. Открытый ключ доступен для публичного домена, так как он является частью вашего SSL-сертификата и сообщается вашему серверу.
Закрытый ключ должен соответствовать CSR, с которым он был создан, и, в конечном счете, он должен соответствовать сертификату, созданному из CSR. Если закрытый ключ отсутствует, это может означать, что сертификат SSL не установлен на том же сервере, который сгенерировал запрос на подпись сертификата.
CSR обычно содержит следующую информацию:
Почему?
😪Мы тщательно прорабатываем каждый фидбек и отвечаем по итогам анализа. Напишите, пожалуйста, как мы сможем улучшить эту статью.
Openssl -что это? 21 пример команд openssl, которые помогут вам на практике
Одним из самых популярных инструментов для создания и управления SSL-сертификатами является библиотека OpenSSL. В этой статье я расскажу о часто используемых командах OpenSSL.
Некоторые аббревиатуры, относящиеся к сертификатам:
- SSL – Secure Socket Layer (уровень защищённых cокетов).
- CSR – Certificate Signing Request (запрос на получение сертификата).
- TLS – Transport Layer Security (протокол защиты транспортного уровня).
- PEM – Privacy Enhanced Mail (формат файлов для хранения и отправки криптографических ключей).
- SHA – Secure Hash Algorithm (алгоритм криптографического хеширования).
- PKCS – Public-Key Cryptography Standards (стандарты криптографии с открытым ключом).
Команда генерирует CSR и файл 2048-битногоRSA-ключа. Если вы собираетесь использовать этот сертификат на Apache или Nginx, то необходимо отправить CSR-файл в центр сертификации. Он предоставит вам заверенный сертификат (в формате der или pem), который нужно настроить на веб-сервере Apache или Nginx.
Команда генерирует самозаверенный сертификат и файл 2048-битного RSA-ключа. Я также включил в команду хеш-функцию sha256, поскольку она считается наиболее безопасной.
Совет: По умолчанию команда генерирует самозаверенный сертификат, действительный только один месяц. Для увеличения этого срока переопределите параметра — days.
Пример: для получения сертификата, действительного два года.
Верификация необходима, чтобы отправленный в регистрационный центр CSR-файл содержал всю необходимую информацию.
Если нужно создать секретный RSA-ключ, используйте приведенную выше команду.
Если вы используете составной пароль (фразу) в файле ключа и работаете на Apache, то при каждом запуске нужно вводить секретную фразу. Если вас это раздражает, то можно использовать приведенную выше команду, чтобы удалить пароль-фразу из существующего ключа.
Если вы сомневаетесь в файле ключа, то можете использовать данную команду.
Если хотите проверить данные сертификата, такие как CN, OU и т.д., используйте приведенную выше команду, которая предоставит данные сертификата.
Для проверки центра сертификации можно использовать приведенную выше команду.
Центр сертификации предоставляет SSL-сертификат в формате .der. Если вам необходимо использовать его в формате apache или .pem, примените приведенную выше команду для соответствующего преобразования.
Если необходимо изменить формат .pem на .der.
Если необходимо использовать сертификат с Java-приложением, принимающим только формат PKCS#12, примените приведенную выше команду. Она генерирует один pfx файл, содержащий сертификат и ключ.
Совет. Вы также можете включить цепочку сертификатов, передав параметр -chain, как показано в примере ниже.
Если не хотите создавать новый секретный ключ вместо существующего, выполните приведенную выше команду.
PKCS12 является двоичным форматом, поэтому вы не сможете просмотреть его содержимое в текстовом редакторе. Для просмотра файла в формате PKCS12 используйте приведенную выше команду.
Если нужно использовать существующий файл в формате pkcs12 на Apache или только в формате pem, в этом поможет приведенная выше команда.
Я часто использую эту команду для проверки SSL-сертификата URL-адреса. Это удобно для проверки данных протокола, шифрования и сертификата.
Команда выведет дату в формате notBefore и notAfter. notAfter — это та дата, которая нужна, чтобы определить, истек ли срок действия сертификата или он еще действителен.
Пример:
Команда позволяет контролировать дату истечения срока действия SSL- сертификата удаленно или для конкретного URL-адреса.
Пример:
Чтобы проверить SSL V2:
Чтобы проверить SSL V3:
Чтобы проверить TLS 1.0:
Чтобы проверить TLS 1.1:
Чтобы проверить TLS 1.2:
Если необходимо проверить, включен ли SSL V2 / V3 или нет, используйте приведенную выше команду. Если он включен, то вы получите сообщение «CONNECTED», в противном случае –сообщение «handshake failure».
Если хотите знать, принимаются ли некоторые слабые шифры, то можете использовать приведенную выше команду.
Для этого необходимо задать шифр и URL-адрес. Если шифр будет принят, вы получите сообщение «CONNECTED», иначе – сообщение «handshake failure».
Надеюсь, что приведенные выше команды помогли вам узнать больше об использовании OpenSSL для управления SSL-сертификатами.
Дайте знать, что вы думаете по данной теме материала в комментариях. За комментарии, отклики, подписки, лайки, дизлайки огромное вам спасибо!
Пожалуйста, оставьте свои комментарии по текущей теме статьи. Мы крайне благодарны вам за ваши комментарии, подписки, лайки, отклики, дизлайки!
Apache
При использовании библиотеки OpenSSL в Apache закрытый ключ по умолчанию сохраняется в /usr/local/ssl. Запустите openssl version –a, команду OpenSSL, которая определяет, какую версию OpenSSL вы используете.
Выходные данные будут отображать каталог, который содержит закрытый ключ. Смотрите пример выходных данных ниже:
OpenSSL 1.0.2g 1 Dec 2021 built on: reproducible build, date unspecified platform: debian-amd64 options: bn(64,64) rc4(16x,int) des(idx,cisc,16,int) blowfish(idx) compiler: 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=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wl,- Bsymbolic-functions -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.
Nginx
Вы сможете найти местоположение личного ключа вашего сервера в файле виртуального хоста вашего домена.
Перейдите к местоположению корневого сервера сайта (обычно это каталог /var/www/) и откройте основной файл конфигурации сайта. Найдите директиву ssl_certificate_key, которая предоставит путь к файлу закрытого ключа.
Если вы не можете найти директиву ssl_certificate_key, возможно, существует отдельный файл конфигурации для деталей SSL. Ищите что-нибудь вроде ssl.conf.
Pkcs # 7 / p7b (.p7b, .p7c) в pfx
Файлы P7B нельзя использовать для непосредственного создания файла PFX. Файлы P7B должны быть преобразованы в PEM. После преобразования в PEM выполните описанные выше шаги, чтобы создать файл PFX из файла PEM.
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.crt
Разбивая команду:
openssl– команда для запуска OpenSSLpkcs7– файловая утилита для файлов PKCS # 7 в OpenSSL-print_certs -in certificate.p7b– распечатывает все сертификаты или CRL, содержащиеся в файле.-out certificate.crt– вывести файл как certificate.crt
Ssl сертификат
Когда вам нужно проверить сертификат, дату его истечения и кто его подписал, используйте следующую команду OpenSSL:
openssl x509 -in server.crt -text –noout
Windows (iis)
На серверах, работающих под управлением Windows Internet Information Services, операционная система сохраняет закрытый ключ в скрытой папке, так же как любая обычная ОС Windows хранит важные системные данные.
Однако, экспортируя файл .pfx, вы можете получить закрытый ключ и сертификаты. Для этого выполните следующие действия:
- Откройте консоль управления MMC (Microsoft Management Console).
- Разверните дерево Сертификаты (локальный компьютер), расположенное в корне консоли.
- Ваш сертификат находится либо в личной папке, либо в папке веб-хостинга. Вы можете идентифицировать каждый сертификат по его Common name (домену)
- Щелкните правой кнопкой мыши сертификат, который вы хотите экспортировать, и выберите Все задачи -> Экспорт.
- Следуйте инструкциям мастера для экспорта файла
.pfx.
Теперь у вас есть то, что вам нужно, если вы хотите сохранить резервную копию или установить сертификат на другом сервере Windows.
Если вам нужно установить сертификат на другом сервере, который не работает под управлением Windows (например, Apache), вам необходимо сконвертировать файл .pfx и разделить файлы .key и .crt или .cer. Вы можете сделать это с OpenSSL.
В чем разница между tls и ssl?
Её нет! Transport Layer Security (TLS) – это обновленная версия Secure Socket Layer (SSL). Даже при том, что большинство безопасных соединений через протоколы TLS, люди продолжают называть это SSL.
Вариант 4: генерация самоподписанного(self-signed) сертификата
Самозаверяющий сертификат обычно используется для сред тестирования и разработки, а также в интрасети. Давайте создадим самозаверяющий сертификат, используя следующую команду OpenSSL:
openssl req -newkey rsa:2048 -nodes -keyout domain.key-x509 -days 365 -out domain.crt
Параметр –days установлен на 365, что означает, что сертификат действителен в течение следующих 365 дней. Параметр x509 указывает, что это будет самозаверяющий сертификат. Временный CSR генерируется, и он используется только для сбора необходимой информации. Если вы не хотите защищать свой закрытый ключ паролем, вы можете добавить параметр –nodes.
Центры сертификации не проверяют самоподписанные сертификаты. Таким образом, они не так безопасны, как проверенные сертификаты. Если ЦС не подписал сертификат, каждый основной браузер отобразит сообщение об ошибке «Ненадежный сертификат», как показано на рисунке ниже.
Генерирование ssl-сертификата
Если вы хотите защитить свой сервис, но не хотите подписывать его в ЦС, вы можете создать и подписать сертификат самостоятельно.
Такие сертификаты называются самоподписанными.
По сути, самоподписанный сертификат – это сертификат, подписанный своим собственным закрытым ключом. Такие сертификаты тоже шифруют соединения, однако они не подтверждают подлинности сайта, потому пользователи, которые открывают сайт, увидят предупреждение.
Если вам ненужно подтверждать подлинность сайта, вы можете спокойно использовать самоподписанные сертификаты.
Генерирование запроса для существующего закрытого ключа
Если у вас уже есть закрытый ключ, но нет сертификата, вы можете сгенерировать запрос для этого ключа.
Следующая команда создаст запрос сертификата (domain.csr) для существующего ключа (domain.key):
openssl req -key domain.key -new -out domain.csr
Ответьте на запросы программы, чтобы продолжить. Опция –new указывает, что запрос нужно сгенерировать.
Дешифровка закрытого ключа
Эта команда может расшифровать зашифрованный ключ:
openssl rsa -in encrypted.key -out decrypted.keyEnter the pass phrase for the encrypted
Введите пароль, чтобы расшифровать ключ.
Для чего нужно преобразование сертификатов
Тут ответ, очень простой, все дело в формате работы с ними у каждой программы, будь то IIS или же Apache сервер. Более подробно про виды сертификатов и их назначение, я вам посоветую прочитать вот эту статью.
Давайте я подробнее покажу как выглядит ошибка импортирования сертификата. Во первых когда вы получаете от comodo ваш архив с сертификатами, то там будет два файла:
Попытавшись на сервере IIS произвести их импорт вы увидите вот такую картинку.
Сертификат не содержит закрытого ключа
И тут нет ничего удивительного, так как это не pfx архив, то в нем нет нужного приватного ключа. Для его получения придется слегка постараться.
Закрытый ключ
Закрытый ключ кодируется и создается в формате PEM на основе Base-64, который не читается человеком. Вы можете открыть его в любом текстовом редакторе, но все, что вы увидите, это несколько десятков строк, которые кажутся случайными символами, заключенными в открывающие и закрывающие заголовки. Ниже приведен пример закрытого ключа:
-----BEGIN RSA PRIVATE KEY----- MIICXAIBAAKBgQCVqGpH2S7F0CbEmQBgmbiDiOOGxhVwlG 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 f3NibugwUxIGWkzlXmGnWbI3yyYoOta0cR9fvjhxV9QFomfTBcdwf40FgQJAH3MG DBMO77w8DK2QfWBvbGN4NFTGYwWg52D1Bay68E759OPYVTMm4o/S3Oib0Q53gt/x TAUq7IMYHtCHZwxkNQJBAORwE 6qVIv/ZSP2tHLYf8DGOhEBJtQcVjE7PfUjAbH5 lr 9qUfv0S13gXj5weio5dzgEXwWdX2YSL/asz5DhU= -----END RSA PRIVATE KEY-----
В большинстве случаев вам не нужно импортировать код закрытого ключа в файловую систему сервера, так как он будет создан в фоновом режиме, пока вы создаете CSR, а затем автоматически сохраняется на сервере. Во время установки SSL-сертификата система извлекает ключ.
Как найти свой ранее установленный закрытый ключ?
Если дело в том, что ваш сертификат уже установлен, выполните следующие действия, которые помогут вам найти свой закрытый ключ в популярных операционных системах.
Как переместить ssl-сертификат с сервера windows на сервер, отличный от windows?
Чтобы переместить сертификат с сервера Windows на сервер, отличный от Windows, необходимо извлечь закрытый ключ из файла .pfx с помощью OpenSSL.
Как скопировать содержимое файла csr
Откройте каталог, в котором находится ваш CSR-файл. Введите следующую команду:
sudo cat domain.csr
Замените domain параметром FQDN вашего CSR. Эта команда отобразит содержимое файла CSR. Скопируйте весь контент, начиная с BEGIN CERTIFICATE REQUEST и заканчивая END CERTIFICATE REQUEST.
Как создать csr
Запросы на подпись сертификата (CSR) создаются с помощью пары ключей – открытого и закрытого ключа. Только открытый ключ отправляется в центр сертификации и включается в сертификат SSL, и он работает вместе с вашим личным ключом для шифрования соединения. Любой может иметь доступ к вашему открытому ключу, и он проверяет подлинность SSL-сертификата.
Закрытый ключ – это блок закодированного текста, который вместе с сертификатом проверяет безопасное соединение между двумя компьютерами. Он не должен быть общедоступным, и его не следует отправлять в ЦС.
Целостность сертификата зависит от того, что только вы знаете закрытый ключ. Если вы когда-либо скомпрометированы или утеряны, как можно скорее введите новый сертификат с новым закрытым ключом. Большинство ЦС не взимают плату за эту услугу.
Большинство пар ключей состоят из 2048 битов. Хотя пары ключей длиной 4096 бит более безопасны, они замедляют SSL-рукопожатия и создают нагрузку на серверные процессоры. Из-за этого большинство сайтов по-прежнему используют 2048-битные пары ключей.
Как создать сертификат ssl
То, как сгенерировать запрос на подпись сертификата (CSR), зависит исключительно от платформы, которую вы используете, и конкретного выбранного вами инструмента.
Мы будем генерировать CSR с использованием OpenSSL.
OpenSSL – это широко используемый инструмент для работы с CSR-файлами и SSL-сертификатами, который можно загрузить с официального сайта OpenSSL. Это инструмент реализации с открытым исходным кодом для SSL/TLS, который используется примерно на 65% всех активных интернет-серверов, что делает его неофициальным отраслевым стандартом.
Команды openssl для конвертации csr
Если вы работаете с серверами Apache, запросы на подпись сертификатов (CSR) и ключи хранятся в формате PEM. Но что, если вы хотите перенести CSR на сервер Tomcat или Windows IIS? Вам придется конвертировать стандартный файл PEM в файл PFX. Следующие команды помогут вам сделать это.
Примечание: Используйте параметр -nodes, если вы не хотите шифровать файл .key. Если вы не используете этот параметр, вам нужно будет указать пароль.
Конвертация to pkcs7 в pem
Чтобы конвертировать PKCS7 в PEM, введите:
openssl pkcs7 -in domain.p7b -print_certs -out domain.crt
Обратите внимание: файл PKCS7 содержит много компонентов, а именно сертификат и промежуточный сертификат ЦС.
Конвертировать pem в der
DER – это двоичный формат, обычно используемый с Java. Чтобы преобразовать файл ASCII PEM в DER, используйте следующую команду OpenSSL:
openssl x509 -in domain.crt -outform der -out domain.der
Преобразование crt в pem
Кладем так же все в одну папку, файл crt вам должны были прислать вместе с ca-bundle.
В итоге у меня получилось, вот так.
Преобразование p7b в pem
Попробует такое преобразование.
Преобразование pem в key
Теперь получим файл с расширением key, для этого есть вот такая команда:
Вас попросят указать пароль от pem ключа.
В итоге я получил закрытый ключ в формате key.
Осталась финишная прямая.
Преобразование pfx в pem
Теперь приступаем к получению фала в формате Pem. Положите в папку с дистрибутивом файл в формате pfx.
Вас попросят указать пароль от Pfx архива, вы его задавали при экспорте, после чего нужно придумать пароль на pem файл.
В папке с дистрибутивом OpenSSL вы обнаружите файл key.pem, он нам нужен будет для следующего этапа.
Проверить версию openssl
Эта команда отображает версию OpenSSL, и ее параметры, с которыми она была скомпилирована:
openssl version -a
Получим примерно такой вывод:
OpenSSL 1.0.1f 6 Jan 2021 built on: Mon Apr 7 21:22:23 UTC 2021 platform: debian-amd64 options: bn(64,64) rc4(16x,int) des(idx,cisc,16,int) blowfish(idx) compiler: cc -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -DTERMIO -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-Bsymbolic-functions -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 rsa -check -in domain.key
Если ключ зашифрован, программа запросит парольную фразу. Предоставьте пароль от ключа, чтобы просмотреть его в незашифрованном формате.
Проверка подписи сертификата
Чтобы убедиться, что сертификат был подписан в ЦС, введите:
openssl verify -verbose -CAFile ca.crt domain.crt
Продление сертификата – не используйте старые csr повторно
То, что некоторые веб-серверы позволяют использовать старые CSR для обновления сертификатов, не означает, что вы должны их использовать. В качестве меры безопасности всегда генерируйте новый CSR и закрытый ключ при обновлении сертификата. Привязка к одному и тому же секретному ключу – это дорога, вымощенная уязвимостями безопасности.
Также рекомендуется обновить SSL-сертификат до истечения срока его действия. В противном случае потребуется покупать новый сертификат.
Система не извлекает закрытый ключ автоматически
Некоторые системы не автоматизируют процедуру извлечения закрытого ключа. Кроме того, если вам нужно установить существующий сертификат на другом сервере, вы, очевидно, не можете ожидать, что он получит закрытый ключ. Основная сложность здесь заключается в том, как найти точное местоположение ключа.
Совпадение ключа с сертификатом и запросом
Эта команда позволяет узнать, относится ли закрытый ключ (domain.key) к тому или иному сертификату (domain.crt) и запросу (domain.csr):
openssl rsa -noout -modulus -in domain.key | openssl md5openssl x509 -noout -modulus -in domain.crt | openssl md5openssl req -noout -modulus -in domain.csr | openssl md5
Если команды вернули одинаковый вывод, то, скорее всего, этот ключ, запрос и сертификат связаны.
Создание закрытого ключа
Чтобы создать закрытый 2048-битный ключ, защищённый паролем, введите:
openssl genrsa -des3 -out domain.key 2048
По запросу введите пароль, чтобы продолжить.
Уровни проверки ssl-сертификатов
Центры сертификации имеют различные уровни проверки сертификатов в ответ на растущий спрос на сертификаты. Некоторые организации используют SSL только для шифрования, в то время как другие хотят показать своим клиентам, что они являются доверенной компанией. Различные потребности привели к различным уровням проверки сертификата.
Установка openssl в debian и ubuntu
Сначала проверим, установлена ли у нас утилита OpenSSL при помощи команды:
dpkg -l |grep openssl
Если пакет OpenSSL установлен, мы получим следующий результат:
ii libgnutls-openssl27:amd64 2.12.23-12ubuntu2.4 amd64 GNU TLS library - OpenSSL wrapper ii openssl 1.0.1f-1ubuntu2.16 amd64 Secure Sockets Layer toolkit - cryptographic utility
Если вы не видите такого результата, выполните следующую команду для установки OpenSSL:
apt-get install openssl
Установка openssl в red hat и centos
Red Hat (версия 7.0 и более поздние) должна поставляться с предустановленной ограниченной версией OpenSSL. Он предлагает только ограниченную поддержку для IDEA, RC5 и MDC2, поэтому вы можете установить недостающие функции.
Чтобы проверить, установлен ли OpenSSL на сервере yum (например, Red Hat или CentOS), выполните следующую команду:
rpm -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 install openssl openssl-devel
Файл cer
Файл CER ипользуется для хранения сертификата X.509.
Он предоставляется и выдается CA (центром сертификации), который проверяет подлинность веб-сайта.
Он содержит информацию о владельце сертификата и открытом ключе.
Файл pem
PEM (Privacy Enhanced Mail) – это файл ASCII в кодировке bas64. Этот формат используется для хранения и отправки криптографических ключей, сертификатов и других промежуточных сертификатов.
В приведенном выше синтаксисе cert.pem – это имя сертификата, который вы хотите преобразовать в формат CER, а cert.cer – это имя сертификата после преобразования.
Вот таким простым образом вы можете преобразовать файл CER в PEM с помощью утилиты OpenSSL.
Формат pkcs#7 или p7b
Эти файлы обычно кодируются в формате Base64 и имеют окончание .p7b или .p7c. Файлы P7B содержат линии “—–BEGIN PKCS7—–” и “—–END PKCS7—–“. В этом формате нету приватных ключей.
PKCS#7 и P7B используются для инсталяции м.п. на серверах Microsoft Windows и Java Tomcat.
Шифрование закрытого ключа
Следующая команда возьмёт незашифрованный ключ (unencrypted.key) и зашифрует его (encrypted.key):
openssl rsa -des3 -in unencrypted.key -out encrypted.key
Введите пароль, чтобы зашифровать ключ.
Расширенная проверка (ev ssl – extended validation)
Центр сертификации проверяет право собственности на домен и проводит тщательное расследование организации, связанной с сертификатом EV. При рассмотрении расширенного запроса проверки соблюдаются строгие правила, и центр сертификации должен проверить следующее:
- Информация об организации соответствует официальным данным
- Физическое, юридическое и эксплуатационное существование субъекта
- Организация имеет исключительные права на использование домена, указанного в сертификате SSL
- Организация надлежащим образом санкционировала выдачу сертификата EV SSL
Заключение
Теперь вы знаете, как сгенерировать запрос на подпись сертификата с помощью OpenSSL, а также устранить наиболее распространенные ошибки.
