SSL (Secure Socket Layer) и TLS (Transport Layer Protocol) - это два протокола безопасности, которые позволяют шифровать и расшифровывать данные, передаваемые через Интернет. Они очень полезны, если вы используете веб-сервер в своей системе Linux. Но TLS является более продвинутым протоколом, чем SSL, и в наши дни является предпочтительной версией. Однако вы можете установить TLS на своем веб-сервере только в том случае, если базовая система Linux поддерживает его.
OpenSSL - это библиотека по умолчанию, используемая в системах Linux для выполнения протоколов SSL/TLS. В этой статье мы узнаем, как проверить поддерживаемые версии TLS/SSL в Linux.
Как проверить поддерживаемую версию TLS/SSL в Linux
Библиотека OpenSSL использует главный конфигурационный файл /etc/pki/tls/openssl.cnf для реализации протоколов TLS/SSL.
Вот простая команда для получения списка всех версий SSL и TLS, поддерживаемых вашей библиотекой OpenSSL.
1 | openssl ciphers -v | awk '{print $2}' | sort | uniq |
Фактический вывод openssl ciphers содержит все детали всех протоколов, поддерживаемых вашей библиотекой. Мы извлекаем 2 столбца из его вывода, сортируем его и удаляем из него дубликаты, чтобы получить окончательный список.
Например, если библиотека OpenSSL, установленная в вашей системе Linux, не поддерживает TLSv1.3, то в выводе вышеприведенной команды не будет отображаться TLS v1.3, и ваши веб-серверы, работающие на этой системе, не смогут поддерживать TLS v1.3. В результате ваш веб-сайт сам не сможет поддерживать TLS v1.3. В таких случаях рекомендуется просто обновить библиотеку OpenSSL в вашей системе, чтобы воспользоваться ее последними возможностями.
Если вы хотите получить полный список всех протоколов, поддерживаемых вашей версией OpenSSL, выполните следующую команду.
1 | openssl ciphers -v | column -t |
Проверка поддерживаемых версий TLS/SSL с помощью NMAP
Вы также можете проверить поддерживаемые версии TLS/SSL с помощью команды NMAP. В данном случае мы просканируем результат запроса, отправленного на наш веб-сервер, расположенный по адресу /g-soft.info.
1 | nmap -script ssl-enum-ciphers -p 443 g-soft.info |
Это полезно, если вы хотите получить список всех поддерживаемых версий TLS/SSL со стороны клиента, а не со стороны сервера, как было сказано выше.
Проверка поддерживаемых версий TLS/SSL с помощью OpenSSL
Мы уже рассмотрели, как проверить поддерживаемые версии TLS/SSL со стороны сервера. Если вы хотите получить ту же информацию со стороны клиента, вам нужно использовать следующую команду. Но в отличие от NMAP, где перечислены все поддерживаемые протоколы, в OpenSSL вам нужно отдельно проверить, поддерживается ли каждый протокол или нет. Вот команда для проверки того, поддерживается ли TLS 1.2 или нет.
1 | openssl s_client -connect g-soft.info:443 -tls1_2 |
Аналогично, вот команда для проверки, поддерживается ли TLS v1.3 или нет.
1 | openssl s_client -connect g-soft.info:443 -tls1_3 <<<"" 2>/dev/null | grep ^New |
TLS v1.0
1 | openssl s_client -connect g-soft.info:443 -tls1 <<<"" 2>/dev/null | grep ^New |
Полезно проверять поддерживаемые версии TLS/SSL на стороне клиента, если вам нужно совершать вызовы API или отправлять запросы на сайт. Это также полезно в случае, если вы хотите обрабатывать запросы, отправленные с определенного сайта. Например, если ваш сайт взаимодействует с платежным процессором, то вам необходимо узнать, какие протоколы поддерживаются на сайте платежного процессора, чтобы вы могли поддерживать их и на своем сайте.
Заключение
В этом руководстве мы узнали, как выяснить, какие версии TLS/SSL поддерживаются вашей системой Linux.