温馨提示×

如何用OpenSSL进行SSL握手测试

小樊
45
2025-02-28 13:52:00
栏目: 云计算
亿速云SSL证书,防劫持篡改、防监听窃取、提升搜索排名 点击了解>>

使用OpenSSL进行SSL握手测试可以帮助你验证服务器和客户端之间的SSL/TLS连接是否正常。以下是一个基本的步骤指南,展示如何使用OpenSSL命令行工具进行SSL握手测试。

1. 安装OpenSSL

确保你的系统上已经安装了OpenSSL。如果没有安装,可以通过包管理器进行安装。例如,在Ubuntu上可以使用以下命令安装:

sudo apt-get update
sudo apt-get install openssl

2. 测试服务器的SSL握手

你可以使用OpenSSL的s_client命令来测试服务器的SSL握手。以下是一个基本的命令示例:

openssl s_client -connect example.com:443 -servername example.com

解释:

  • -connect example.com:443:指定要连接的服务器和端口。
  • -servername example.com:指定服务器名称(SNI,Server Name Indication),这对于虚拟主机非常重要。

运行这个命令后,你会看到一系列的SSL握手信息,包括证书链、加密套件等。如果握手成功,你会看到类似以下的输出:

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-----
MIIFdzCCBe+gAwIBAgIEbKv1TANBgkqhkiG9w0BAQsFADBzMQswCQYDVQQGEwJV
...
-----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
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 3544 bytes and written 434 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)
---

3. 解读输出

  • CONNECTED:表示连接成功。
  • Certificate chain:显示服务器证书链。
  • Server certificate:显示服务器的证书详细信息。
  • SSL handshake has read/write:显示握手过程中读取和写入的字节数。
  • Verification error:如果有证书验证错误,会在这里显示。
  • Cipher:显示使用的加密套件。
  • Server public key:显示服务器的公钥位数。
  • Verify return code:显示证书验证的返回码,例如19表示自签名证书错误。

4. 常见问题和解决方法

  • 证书验证错误:如果遇到证书验证错误,可以使用-CAfile选项指定CA证书文件,或者使用-CApath选项指定CA证书路径。
    openssl s_client -connect example.com:443 -servername example.com -CAfile /path/to/ca-bundle.crt
    
  • 不支持的协议版本:如果服务器不支持TLSv1.3,可以尝试指定其他协议版本。
    openssl s_client -connect example.com:443 -servername example.com -tls1_2
    

通过这些步骤,你可以使用OpenSSL进行SSL握手测试,并验证服务器的SSL/TLS配置是否正确。

亿速云提供多种品牌、不同类型SSL证书签发服务,包含:域名型、企业型、企业型专业版、增强型以及增强型专业版,单域名SSL证书300元/年起。点击查看>>

推荐阅读:Linux OpenSSL如何进行SSL握手测试

0