- Command prompt to check TLS version required by a host
- 4 Answers 4
- Как проверить поддерживаемую версию TLS/SSL в Linux
- Как проверить поддерживаемую версию TLS/SSL в Linux
- Проверка поддерживаемых версий TLS/SSL с помощью NMAP
- Проверка поддерживаемых версий TLS/SSL с помощью OpenSSL
- Похожие записи:
- Проверка сервера Linux на поддержку TLS
- Требования
- Проверка поддержки TLS с помощью Openssl
- Проверка поддержки TLS с помощью Nmap
- Заключение
Command prompt to check TLS version required by a host
Is there a command to check the TLS version required by a host site? Right now, the only way I know to check is by adjusting the max TLS version of my browser and checking if I can still access the site. However, I suspect there is a more sophisticated way to do this.
Not command line, but Firefox can tell you the Technical Details of the encryption level when you go to Padlock->More Information->Security. (I don’t know whether it’s necessary to allow the particular TLS version before it will tell you what it is.)
4 Answers 4
You can check using following commands.
openssl s_client -connect www.google.com:443 -tls1_2
openssl s_client -connect www.google.com:443 -tls1_1
openssl s_client -connect www.google.com:443 -tls1
If you get the certificate chain and the handshake then the TLS version is supported. If you don’t see the certificate chain, and something similar to «handshake error» then its not.
@DarshanaPatel You can connect to any server with that command, or if you want to use that command you can install OpenSSL for Windows
I’ve had mixed results with this. An API being tested with this method did not report a certificate with 1.1, but did with 1.2. Hinting at 1.1 not being supported. Yet with curl below, using 1.1 downloaded the site content/landing page. Not sure why openssl results didn’t match curl. An aside, curl was inline with the online tools offering similar checks.
Another option for checking SSL / TLS version support is nmap. nmap is not typically installed by default, so you’ll need to manually install it. Once installed you can use the following command to check SSL / TLS version support…
nmap --script ssl-enum-ciphers -p 443 www.google.com
nmap’s ssl-enum-ciphers script will not only check SSL / TLS version support for all versions (TLS 1.0, TLS 1.1, and TLS 1.2) in one go, but will also check cipher support for each version including giving providing a grade.
I like to use curl which can report a TLS version negotiation quite nicely.
For example, this tries to connect with TLS 1.1, which the server negotiates to upgrade to 1.2:
$ curl -Iiv --tlsv1.1 https://example.com * Trying 192.168.205.11:443. * TCP_NODELAY set * Connected to example.com (192.168.205.11) port 443 (#0) * ALPN, offering h2 * ALPN, offering http/1.1 * successfully set certificate verify locations: * CAfile: /etc/ssl/certs/ca-certificates.crt CApath: /etc/ssl/certs * TLSv1.3 (OUT), TLS handshake, Client hello (1): * TLSv1.3 (IN), TLS handshake, Server hello (2): * TLSv1.2 (IN), TLS handshake, Certificate (11): * TLSv1.2 (IN), TLS handshake, Server key exchange (12): * TLSv1.2 (IN), TLS handshake, Server finished (14): * TLSv1.2 (OUT), TLS handshake, Client key exchange (16): * TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1): * TLSv1.2 (OUT), TLS handshake, Finished (20): * TLSv1.2 (IN), TLS handshake, Finished (20): * SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384 * ALPN, server accepted to use http/1.1 * Server certificate: [. ]
To forbid that the server upgrades the TLS version use the —tls-max option:
$ curl -Iiv --tlsv1.1 --tls-max 1.1 https://example.com * Trying 192.168.205.11:443. * TCP_NODELAY set * Connected to example.com (192.168.205.11) port 443 (#0) * ALPN, offering h2 * ALPN, offering http/1.1 * successfully set certificate verify locations: * CAfile: /etc/ssl/certs/ca-certificates.crt CApath: /etc/ssl/certs * TLSv1.3 (OUT), TLS alert, internal error (592): * error:141E70BF:SSL routines:tls_construct_client_hello:no protocols available * Closing connection 0 curl: (35) error:141E70BF:SSL routines:tls_construct_client_hello:no protocols available
In this case, the connection fails because the client does not offer any TLS version above 1.1, but the server does not accept any version below 1.2. If used like this, the output is very similar to the openssl_client output.
Как проверить поддерживаемую версию TLS/SSL в Linux
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.
openssl ciphers -v | awk '' | sort | uniq
Фактический вывод openssl ciphers содержит все детали всех протоколов, поддерживаемых вашей библиотекой. Мы извлекаем 2 столбца из его вывода, сортируем его и удаляем из него дубликаты, чтобы получить окончательный список.
Например, если библиотека OpenSSL, установленная в вашей системе Linux, не поддерживает TLSv1.3, то в выводе вышеприведенной команды не будет отображаться TLS v1.3, и ваши веб-серверы, работающие на этой системе, не смогут поддерживать TLS v1.3. В результате ваш веб-сайт сам не сможет поддерживать TLS v1.3. В таких случаях рекомендуется просто обновить библиотеку OpenSSL в вашей системе, чтобы воспользоваться ее последними возможностями.
Если вы хотите получить полный список всех протоколов, поддерживаемых вашей версией OpenSSL, выполните следующую команду.
openssl ciphers -v | column -t
Проверка поддерживаемых версий TLS/SSL с помощью NMAP
Вы также можете проверить поддерживаемые версии TLS/SSL с помощью команды NMAP. В данном случае мы просканируем результат запроса, отправленного на наш веб-сервер, расположенный по адресу /g-soft.info.
nmap -script ssl-enum-ciphers -p 443 g-soft.info
Это полезно, если вы хотите получить список всех поддерживаемых версий TLS/SSL со стороны клиента, а не со стороны сервера, как было сказано выше.
Проверка поддерживаемых версий TLS/SSL с помощью OpenSSL
Мы уже рассмотрели, как проверить поддерживаемые версии TLS/SSL со стороны сервера. Если вы хотите получить ту же информацию со стороны клиента, вам нужно использовать следующую команду. Но в отличие от NMAP, где перечислены все поддерживаемые протоколы, в OpenSSL вам нужно отдельно проверить, поддерживается ли каждый протокол или нет. Вот команда для проверки того, поддерживается ли TLS 1.2 или нет.
openssl s_client -connect g-soft.info:443 -tls1_2
Аналогично, вот команда для проверки, поддерживается ли TLS v1.3 или нет.
openssl s_client -connect g-soft.info:443 -tls1_3 /dev/null | grep ^New
openssl s_client -connect g-soft.info:443 -tls1 /dev/null | grep ^New
Полезно проверять поддерживаемые версии TLS/SSL на стороне клиента, если вам нужно совершать вызовы API или отправлять запросы на сайт. Это также полезно в случае, если вы хотите обрабатывать запросы, отправленные с определенного сайта. Например, если ваш сайт взаимодействует с платежным процессором, то вам необходимо узнать, какие протоколы поддерживаются на сайте платежного процессора, чтобы вы могли поддерживать их и на своем сайте.
В этом руководстве мы узнали, как выяснить, какие версии TLS/SSL поддерживаются вашей системой Linux.
Похожие записи:
Проверка сервера Linux на поддержку TLS
TLS — это аббревиатура от Transport Layer Security. TLS облегчает безопасную связь между компьютерами в Интернете. На момент написания этой статьи TLS 1.3 является последней версией. Эта инструкция объясняет, как вы можете проверить, какие версии TLS поддерживает ваш сервер или веб-сайт работающие на сервере Linux. А также какой алгоритм шифрования используется.
Требования
Проверка поддержки TLS с помощью Openssl
Openssl — это инструмент с открытым исходным кодом для реализации безопасных коммуникаций в Интернете. Инструмент openssl доступен во всех основных дистрибутивах Linux.
Если вдруг openssl не установлен на вашем компьютере или сервере Linux, вы можете установить его следующим образом.
В дистрибутивах на базе Ubuntu/Debian:
В дистрибутивах на базе CentOS/Red Hat:
Для того чтобы проверить поддержку TLSv1.3 на вашем сервере или веб-сайте, выполните следующую команду.
$ sudo openssl s_client -connect setiwik.ru:443 -tls1_3
Примечание: Не забудьте изменить проверяемый домен ‘setiwik.ru’, на свой домен.
Кроме того, вы можете заменить -tls1_3 на:
Если вы видите цепочку сертификатов, а также сведения об успехе в выходных данных, то указанная версия TLS поддерживается. Если нет, то указанная версия TLS не поддерживается.
Вы так же можете проверить поддерживается ли конкретное шифрование. Это можно сделать следующим образом.
$ openssl s_client -cipher ‘AES256-GCM-SHA384’ -connect setiwik.ru:443
Как и прежде, обратите внимание на цепочку сертификатов и успешный ответ, который подтверждает, что указанное шифрование поддерживается.
Проверка поддержки TLS с помощью Nmap
Nmap — это инструмент, который в основном используется для поиска доступных сервисов и портов в сети. Выполните приведенную ниже команду, чтобы установить Nmap.
В дистрибутивах на базе Ubuntu/Debian:
В дистрибутивах на базе CentOS/Red Hat:
После установки вы можете использовать инструмент nmap для тестирования вашего сервера или веб-сайта на поддержку TLS. Делается это следующим следующим образом.
$ nmap --script ssl-enum-ciphers -p 443 setiwik.ru
Ниже приведен пример ответа, показывающий версию TLS и шифрования, которые поддерживает мой сервер.
Заключение
В этом статье мы рассмотрели, как проверить поддерживает ли сервер или веб-сайт TLS с помощью openssl и nmap. Тест TLS может сказать вам, насколько сильна безопасность вашего сайта. Надеемся, что эта информация будет полезной для вас.