Linux проверить срок действия сертификата

Содержание
  1. Как проверить сертификат SSL в командной строке Linux?
  2. Метод проверки сертификата SSL в командной строке Linux Mint 20
  3. Заключение
  4. Как определить дату истечения срока действия сертификата SSL из сертификата, закодированного в PEM?
  5. 9 ответов
  6. Openssl, проверка SSL-сертификатов через терминал
  7. 1. Генерация CSR и ключа
  8. 2. Создание нового CSR для уже имеющегося ключа.
  9. 3. Проверка корректности CSR
  10. 4. Проверка корректности ключа
  11. 5. Проверка данных SSL-сертификата
  12. 6. Декодирование CSR
  13. 7. Декодирование SSL-сертификата
  14. 8. Сравнение соответствия SSL-сертификата и ключа
  15. 9. Сравнение соответствия SSL-сертификата и CSR
  16. 10. Проверка правильности порядка установки CA сертификатов.
  17. Как просмотреть SSL сертификат используя openssl
  18. MNorin.com
  19. Блог про Linux, Bash и другие информационные технологии
  20. Проверка сертификата сервера из bash
  21. Что нам потребуется
  22. Проверка сертификата сервера из bash
  23. Что можно улучшить

Как проверить сертификат SSL в командной строке Linux?

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

В этой статье мы объясним вам метод проверки сертификата SSL через командную строку Linux. Мы используем систему Linux Mint 20, чтобы продемонстрировать этот метод.

Метод проверки сертификата SSL в командной строке Linux Mint 20

Чтобы проверить SSL-сертификат любого желаемого веб-сервера на определенном номере порта, вам нужно будет выполнить следующую команду в своем терминале Linux Mint 20:

Здесь вам нужно будет заменить WebServerURL именем веб-сервера, чей SSL-сертификат вы хотите проверить, а PortNumber — точным номером порта, к которому подключен этот веб-сервер. Мы заменили WebServerURL на google.com и PortNumber на 80, как показано на изображении ниже:

Информация о сертификате SSL указанного веб-сервера показана в командной строке Linux Mint 20 на следующем изображении:

Заключение

Следуя методу, описанному в этой статье, вы легко сможете проверить SSL-сертификат любого желаемого веб-сервера через командную строку Linux Mint 20. Этот метод основан на одной команде; следовательно, вы сможете быстро достичь желаемой цели. Более того, ту же процедуру можно использовать в системе Ubuntu 20.04 или Debian 10.

Источник

Как определить дату истечения срока действия сертификата SSL из сертификата, закодированного в PEM?

Если у меня есть фактический файл и оболочка Bash в Mac или Linux, как я могу запросить файл сертификата, когда он истечет? Не веб-сайт, а сам файл сертификата, если у меня есть файлы csr, key, pem и chain.

9 ответов

Результат находится в форме:

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

Я сделал сценарий bash, связанный с тем же, чтобы проверить, истек ли срок действия сертификата или нет. При необходимости вы можете использовать то же самое.

Скрипт

ReadMe

Если (по какой-то причине) вы хотите использовать приложение с графическим интерфейсом в Linux, используйте gcr-viewer (в большинстве дистрибутивов он устанавливается пакетом gcr (в противном случае в пакете gcr-viewer ))

Читайте также:  Windows требуется файл hp7 exe

Для MAC OSX (El Capitan) У меня сработала эта модификация примера Николаса.

MacOS не нравились флаги —date= или —iso-8601 в моей системе.

То же, что и принятый ответ, но обратите внимание, что он работает даже с файлом .crt , а не только с файлом .pem , на всякий случай, если вы не можете найти местоположение файла .pem .

Одна строка проверяет истинность / ложь, если срок действия сертификата домена истечет через некоторое время (например, 15 дней):

Вот функция bash, которая проверяет все ваши серверы, если вы используете циклический перебор DNS. Обратите внимание, что для этого требуется дата GNU и не будет работать в Mac OS.

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

Если вы просто хотите узнать, истек ли срок действия сертификата (или истечет ли это в течение следующих N секунд), опция -checkend для openssl x509 сообщит вам:

Это избавляет от необходимости самостоятельно сравнивать дату и время.

openssl вернет код выхода 0 (ноль), если срок действия сертификата не истек, и не будет делать это в течение следующих 86400 секунд, как в примере выше. Если срок действия сертификата истек или уже истек — или если возникла другая ошибка, например, недопустимый / несуществующий файл — код возврата: 1 .

(Конечно, предполагается, что время / дата установлены правильно)

Источник

Openssl, проверка SSL-сертификатов через терминал

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

OpenSSL — криптографический пакет с открытым исходным кодом для работы с SSL/TLS. Позволяет создавать ключи RSA, DH, DSA и сертификаты X.509, подписывать их, формировать CSR и CRT. Также имеется возможность шифрования данных и тестирования SSL/TLS соединений.

Рассмотрим на примерах следующие случаи:
1. Генерация CSR и ключа.
2. Создание нового CSR для уже имеющегося ключа.
3. Проверка корректности CSR.
4. Проверка корректности ключа.
5. Проверка данных SSL-сертификата.
6. Декодирование CSR.
7. Декодирование SSL-сертификата.
8. Сравнение соответствия SSL-сертификата и CSR.
9. Сравнение соответствия SSL-сертификата и ключа.
10. Проверка правильности порядка установки CA сертификатов.

Первое что нужно сделать — это зайти по SSH на сервер и установить OpenSSL.

1. Генерация CSR и ключа

Перейдем в директорию, в которой будут хранится файлы CSR и ключа:

Далее выполняем команду генерации CSR и ключа:

server.csr – имя файла CSR;

server.key – имя файла ключа;

имена можно менять по своему усмотрению.

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

Проверяем создались ли файлы:

Файлы создались, все в порядке. Можно заказывать SSL-сертификат.

Подробно о заказе и установке SSL-сертификата можно ознакомиться в статье “Заказ и установка SSL сертификата на хостинг Ukrnames”

Мы получили файлы сертификата (ukrnames_idua_org, ca_1, ca_2, ca_3) и переместим их так же в папку /etc/ssl/certs/

Можем переходить теперь к следующим пунктам статьи.

2. Создание нового CSR для уже имеющегося ключа.

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

Читайте также:  Kaspersky internet security для windows 10 не устанавливается

Данная команда позволит заново сгенерировать CSR-запрос на основании имеющегося у нас ключа (в данном примере ключ у нас находится в папке /etc/ssl/certs/server.key):

И вновь нужно вводить данные CSR.

Потом можем копировать данные файла server.csr и продлевать SSL-сертификат, копировать ключ уже не нужно, он заново сгенерирован в старый файл ключа /etc/ssl/certs/server.key.

3. Проверка корректности CSR

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

Получаем вывод, в котором стоит обратить внимание на поле verify , если стоит статус “OK” , значит с CSR все в порядке.

4. Проверка корректности ключа

Выполним команду для проверки корректности содержимого ключа:

Получаем вывод, в котором стоит обратить внимание на поле RSA key, если стоит статус “ok”, значит с ключом все в порядке.

5. Проверка данных SSL-сертификата

Переименуем для удобства файл сертификата ukrnames_idua_org в server.crt с помощью команды:

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

Получаем вывод, в котором можно ознакомится с подробностями SSL-сертификата (кто выдал, для какого домена выдан и т.д.).


6. Декодирование CSR

Иногда после генерации CSR хочется проверить правильность ввода данных. Для этого достаточно выполнить команду:

Получим вывод, в котором стоит обратить внимание на поле “Subject:”, в нем указаны все вводимые нами данные.

7. Декодирование SSL-сертификата

Вывести данные SSL-сертификата можно командой:

Вывод будет эдентичен выводу в пункте 5.

8. Сравнение соответствия SSL-сертификата и ключа

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

Получим вывод на экран хешей:

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

9. Сравнение соответствия SSL-сертификата и CSR

Для данного примера заменим данные CSR файла /etc/ssl/certs/server.csr на другие:

Выполним команды для вывода хешей файлов /etc/ssl/certs/server.crt и /etc/ssl/certs/server.csr:

Получим вывод на экран:

Как видим, хеши отличаются – это означает, что сертификат не совпадает с CSR.

10. Проверка правильности порядка установки CA сертификатов.

На данном сервере, где выполнялись работы с openssl, установим веб-сервер, подключим домен ukrnames.idua.org и установим для него SSL-сертификат.

Т.к. веб-сервер не имеет доступа к папке /etc/ssl/certs/ , то копируем ключ, сертификат и промежуточные сертификаты в новосозданную папку /var/www/ssl/

В файле конфигурации веб-сервера подключаем файлы SSL-сертификата. Но чтобы все корректно работало, нужно создать файл для промежуточных сертификатов (к примеру ca.pem) и внести в него с определенной последовательностью данные файлов промежуточных сертификатов (ca_1, ca_2, ca_3).

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

Получаем данные об издателе основного сертификата:

Теперь получим данные о промежуточных сертификатах ca_1, ca_2, ca_3 (нужно обращать внимание только на поля “Issuer:” и “Subject:”):

Получим вывод на экран:

Сопоставив данные сертификата и промежуточных сертификатов, можно сделать вывод, что после основного сертификата первым промежуточным должен идти сертификат ca_3, т.к. в поле “Subject:” раздел CN файла ca_3 совпадает с полем “Issuer:” разделом CN (CN=COMODO RSA Domain Validation Secure Server CA).

Далее смотрим на поле “Issure:” раздел CN файла ca_3 (CN=COMODO RSA Certification Authority). Ищем в выводах файлов ca_2 и ca_1 совпадение в полях “Subject:” . Совпадение найдено в файле ca_2, данный файл мы будем подключать вторым.

И методом исключения, файл ca_1 будет подключаться самым последним.

Читайте также:  Переключение между окнами word mac os

Выполняем команды для объединения всех файлов промежуточных сертификатов(ca_1, ca_2, ca_3) в один (ca.pem):

Теперь можем увидеть полную цепочку установленных сертификатов с помощью команды:

Получим вывод на экран правильной цепочки подключения сертификатов:

Источник

Как просмотреть SSL сертификат используя openssl

Рассмотрим как просмотреть SSL сертификат в консоли Linux сервера — этот способ универсален, поскольку далеко не все сертификаты сразу устанавливаются на Apache или Nginx.

Достаточно выполнить одну команду указав в ней имя файла

openssl x509 -in example.crt -text -noout

Certificate:
Data:
Version: 1 (0x0)
Serial Number:
df:d0:88:c4:0e:cd:bb:e9
Signature Algorithm: sha256WithRSAEncryption
Issuer: C=RU, ST=State, L=City, O=CompanyName, OU=IT, CN=example.com/emailAddress=test@example.com
Validity
Not Before: Dec 24 08:16:50 2017 GMT
Not After : Dec 24 08:16:50 2018 GMT
Subject: C=RU, ST=State, L=City, O=CompanyName, OU=IT, CN=example.com/emailAddress=test@example.com
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (1024 bit)
Modulus:
00:ce:14:1e:b9:63:c8:d3:80:bc:de:bc:0b:af:c4:

a1:b4:97:06:28:11:ac:1f:69
Exponent: 65537 (0x10001)
Signature Algorithm: sha256WithRSAEncryption

9e:75:e5:41:2b:b9:c4:36:79:08:4b:06:4e:f8:50:4b:86:aa:
cd:04

Чаще всего на практике возникает необходимость выяснить для какого имени выпущен сертификат — в данном случае это example.com, что явно видно из вывода.

Для демонстрации использовался самоподписанный сертификат, сгенерированный на сервере

Таким же образом можно посмотреть содержимое запроса на выпуск сертификата (.pem или .csr файла)

Источник

MNorin.com

Блог про Linux, Bash и другие информационные технологии

Проверка сертификата сервера из bash

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

Что нам потребуется

Для проверки будем использовать, естественно, Linux. Именно на нем чаще всего стоят системы мониторинга, такие как Zabbix и Nagios. Кроме сервера с Linux’ом нам еще кое-что потребуется. Прежде всего OpenSSL (чем свежее, тем лучше), и, конечно же, bash, на котором мы и будем писать скрипт. Этот скрипт будет полезен как при ручной проверке, так и при автоматизированных проверках.

Проверка сертификата сервера из bash

Вот как будет организована проверка. Мы открываем SSL-соединение с сервером, получаем сертификат, передаем его на обработку OpenSSL (openssl x509), получая таким образом информацию по полям, а если нам нужно посчитать, сколько времени осталось до истечения срока действия сертификата, будет использовать отдельный параметр, который нам просто выведет количество дней в формате «N days».

Вот сам скрипт с комментариями:

Что можно улучшить

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

Источник

Оцените статью