我需要通过 SSL 协议配置连接到服务器。我从服务器所有者那里得到了 2 个文件——CA 根证书(ca.pem)和测试证书请求(test.csr 文件)。
我尝试通过 openssl s_connect 实用程序测试连接,我给出了奇怪的结果(xxx - 屏蔽值):
openssl s_client -connect MYURL -CAfile ca.pem
CONNECTED(00000003)
xxx verify return:1
xxx verify return:1
3074332296:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:s3_pkt.c:1193:SSL alert number 40
3074332296:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:s23_lib.c:177:
但是,在握手警报和打印证书数据之后,我看到:
SSL handshake has read yyy bytes and written yyy bytes
New, xxx, Cipher is xxx
Server public key is xxx bit
Compression: xxx
Expansion: xxx
SSL-Session:
Protocol : xxx
Cipher : xxx
Session-ID:
Session-ID-ctx:
Master-Key: xxx
Key-Arg : xxx
PSK identity: xxx
PSK identity hint: xxx
Compression: xxx
Start Time: xxx
Timeout : xxx (sec)
Verify return code: 0 (ok)
验证返回码是 0 (ok) 是什么意思?如果发生握手错误/警报怎么可能?