阅读量:0
使用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配置是否正确。
以上就是关于“如何用OpenSSL进行SSL握手测试”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm