列出特定OpenSSL构建支持的SSL / TLS版本

时间:2014-12-11 18:44:43

标签: linux ssl openssl

例如,我的Linux系统上有OpenSSL版本1.0.0o,我想知道这个版本支持哪些SSL/TLS版本。

是否有shell命令来完成此任务?

6 个答案:

答案 0 :(得分:138)

使用此

openssl ciphers -v | awk '{print $2}' | sort | uniq

答案 1 :(得分:10)

您无法通过命令行检查版本支持。最好的选择是检查OpenSSL changelog

直到1.0.0h的Openssl版本支持SSLv2,SSLv3和TLSv1.0。从Openssl 1.0.1开始,添加了对TLSv1.1和TLSv1.2的支持。

答案 2 :(得分:1)

这很笨拙,但您可以从s_clients_server的使用消息中获取此消息,这些消息在编译时#if以匹配支持的协议版本。使用像

这样的东西
 openssl s_client -help 2>&1 | awk '/-ssl[0-9]/-tls[0-9]/{print $1}' 
 # in older releases any unknown -option will work; in 1.1.0 must be exactly -help

答案 3 :(得分:1)

这对我有用:

var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope) {
    $scope.newStr = '1.1.1.2/23';
    $scope.string = $scope.newStr;
    $scope.tokens = $scope.string.split("/")
    for(let i=0; i<$scope.tokens.length; i++)
    {
       console.log($scope.tokens[i]);
    }  
});

如果这是错误的,请告诉我。

答案 4 :(得分:0)

尝试以下命令:

openssl ciphers

这应该会生成您的openssl版本支持的所有密码的列表。

要查看一组特定的密码(例如只是sslv3密码),请尝试:

openssl ciphers -ssl3

有关详细信息,请参阅https://www.openssl.org/docs/apps/ciphers.html

答案 5 :(得分:-2)

使用s_client运行OPENSSL命令时,这是输出。请参阅密码,如果密码为NULL,则表示不支持TLS版本。

TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1
    Cipher    : ECDHE-RSA-AES256
    Session-ID: A84600002D4945DE6
    Session-ID-ctx:
    Master-Key:  
    Start Time: 15852343333860
    Timeout   : 2343 (sec)
    Verify return code: 0 (ok)