在Linux系统中,使用OpenSSL工具可以进行SSL/TLS握手测试。以下是具体步骤:
安装OpenSSL: 确保你的系统上已经安装了OpenSSL。如果没有安装,可以使用包管理器进行安装。
sudo apt-get update
sudo apt-get install openssl
确定目标服务器和端口: 确定你要测试的SSL/TLS服务器的地址和端口号。
你可以使用openssl s_client
命令来进行SSL/TLS握手测试。以下是一些常用的命令选项:
openssl s_client -connect example.com:443
这个命令会连接到example.com
的443端口,并显示握手过程中的详细信息。
如果你想测试特定的SSL/TLS协议版本,可以使用-tls1_2
、-tls1_3
等选项。
openssl s_client -connect example.com:443 -tls1_2
你可以使用-showcerts
选项来查看完整的证书链。
openssl s_client -connect example.com:443 -showcerts
如果你需要使用自定义的CA证书进行验证,可以使用-CAfile
选项。
openssl s_client -connect example.com:443 -CAfile /path/to/ca-bundle.crt
在某些情况下,你可能想要禁用证书验证(不推荐在生产环境中使用)。
openssl s_client -connect example.com:443 -verify_return_error
握手成功后,你会看到类似以下的输出:
CONNECTED(00000003)
depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3
verify error:num=19:self signed certificate in certificate chain
verify return:1
depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = R3
verify return:1
depth=0 CN = example.com
verify return:1
---
Certificate chain
0 s:CN = example.com
i:C = US, O = Let's Encrypt, CN = R3
1 s:C = US, O = Let's Encrypt, CN = R3
i:O = Digital Signature Trust Co., CN = DST Root CA X3
---
Server certificate
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
subject=CN = example.com
issuer=C = US, O = Let's Encrypt, CN = R3
---
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: RSA-PSS
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 3542 bytes and written 395 bytes
Verification error: self signed certificate in certificate chain
---
New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
Server public key is 2048 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 19 (self signed certificate in certificate chain)
---
通过以上步骤,你可以使用OpenSSL工具对SSL/TLS握手进行详细的测试和分析。