Linux check ssl cert

Openssl, проверка 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 и ключа:

openssl req -out server.csr -new -newkey rsa:2048 -nodes -keyout server.key

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

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

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

openssl1

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

openssl2

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

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

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

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

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

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

Читайте также:  Что такое linux peppermint

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

openssl req -out /etc/ssl/certs/server.csr -key /etc/ssl/certs/server.key -new

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

openssl3

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

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

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

openssl req -text -noout -verify -in /etc/ssl/certs/server.csr

openssl4

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

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

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

openssl rsa -in /etc/ssl/certs/server.key -check

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

openssl5

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

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

mv /etc/ssl/certs/ukrnames_idua_org /etc/ssl/certs/server.crt

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

openssl x509 -in /etc/ssl/certs/server.crt -text -noout

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

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

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

openssl req -in /etc/ssl/certs/server.csr -noout -text

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

openssl7

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

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

openssl x509 -in certificate.crt -text -noout

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

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

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

openssl x509 -noout -modulus -in /etc/ssl/certs/server.crt | md5sum
openssl rsa -noout -modulus -in /etc/ssl/certs/server.key | md5sum

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

5bece1c3929b08096dcad3eb4613b300
5bece1c3929b08096dcad3eb4613b300

openssl8

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

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

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

openssl req -out /etc/ssl/certs/server.csr -key /etc/ssl/certs/server.key -new

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

openssl x509 -noout -modulus -in /etc/ssl/certs/server.crt | md5sum
openssl req -noout -modulus -in /etc/ssl/certs/server.csr | md5sum
5bece1c3929b08096dcad3eb4613b300
6f4526732defc3985a3abd37f877eae5

openssl9

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

Читайте также:  Спящий режим через терминал linux

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

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

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

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

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

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

openssl x509 -in /var/www/ssl/server.crt -noout -text | grep Issuer:
Issuer: C=GB, ST=Greater Manchester, L=Salford, O=COMODO CA Limited, CN=COMODO RSA Domain Validation Secure Server CA

openssl10

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

openssl x509 -in /var/www/ssl/ca_1 -noout -text | egrep "Subject:|Issuer:"
openssl x509 -in /var/www/ssl/ca_2 -noout -text | egrep "Subject:|Issuer:"
openssl x509 -in /var/www/ssl/ca_3 -noout -text | egrep "Subject:|Issuer:"

openssl11

Сопоставив данные сертификата и промежуточных сертификатов, можно сделать вывод, что после основного сертификата первым промежуточным должен идти сертификат 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 будет подключаться самым последним.

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

cat /var/www/ssl/ca_3 > /var/www/ssl/ca.pem cat /var/www/ssl/ca_2 >> /var/www/ssl/ca.pem cat /var/www/ssl/ca_1 >> /var/www/ssl/ca.pem

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

openssl s_client -connect ukrnames.idua.org:443

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

Читайте также:  Linux autostart on login

Источник

How to Check SSL Certificate in Linux Command Line?

SSL is a very commonly used internet protocol designed for encrypting network traffic and hence enabling secure communication over the network. Whenever SSL is enabled on a website, there is a dedicated SSL certificate associated with it. This certificate contains information like the domain name of the webserver, the name of the certificate-issuing authority, certificate expiration date, etc.

In this article, we will explain to you the method of checking the SSL certificate through the Linux command line. We are using a Linux Mint 20 system to demonstrate this method.

Method of Checking the SSL Certificate in Linux Mint 20 Command Line

For checking the SSL certificate of any desired web server on a specific port number, you will have to execute the following command in your Linux Mint 20 terminal:

Here, you will have to replace WebServerURL with the name of the webserver whose SSL certificate you want to verify and PortNumber with the exact port number to which that web server is connected. We have replaced WebServerURL with google.com and PortNumber with 80, as shown in the image below:

The SSL certificate information of the specified web server is shown in the Linux Mint 20 command line in the following image:

Conclusion:

By following the method shared with you in this article, you will easily be able to check the SSL certificate of any desired web server through Linux Mint 20 command line. This method is based on a single command; therefore, you will be able to quickly achieve the desired purpose. Moreover, the very same procedure can also be employed on an Ubuntu 20.04 or a Debian 10 system.

About the author

Karim Buzdar

Karim Buzdar holds a degree in telecommunication engineering and holds several sysadmin certifications. As an IT engineer and technical author, he writes for various web sites. He blogs at LinuxWays.

Источник

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