linux

Linux OpenSSL如何进行SSL/TLS握手测试

小樊
38
2025-08-01 14:09:13
栏目: 云计算

在Linux系统中,使用OpenSSL工具可以进行SSL/TLS握手测试。以下是具体步骤:

准备工作

  1. 安装OpenSSL: 确保你的系统上已经安装了OpenSSL。如果没有安装,可以使用包管理器进行安装。

    sudo apt-get update
    sudo apt-get install openssl
    
  2. 确定目标服务器和端口: 确定你要测试的SSL/TLS服务器的地址和端口号。

使用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证书

如果你需要使用自定义的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握手进行详细的测试和分析。

0
看了该问题的人还看了