应用 openssl 工具进行 SSL 故障分析

发表于:2009-4-20 10:07

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:网络转载

  s_client 在 SSL 握手协议中的应用

  在连接 SSL 服务器时最常见的问题就是客户端认证服务器端身份失败,有多种原因造成这些失败,以下列举了常见的错误并解析了如何应用 s_client 进行确诊。

  •   服务器的证书在传输过程中被篡改

  1.提取服务器的证书:

  在 linux 平台下创建脚本 retrieve-cert.sh 并存入一下清单 2 中的内容。该脚本的输出内容就是服务器端的 X509 证书经过 Base64 编码后的内容,执行脚本并将脚本输出存入文件 server.pem 中。

  清单 2. 提取证书

  ###usage: retrieve-cert.sh remote.host.name [port]

  SSLHOST=$1

  SSLPORT=${2:-443}

  echo |\

  openssl s_client -connect ${SSLHOST}:${SSLPORT} 2>&1 |\

  sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'

  1.验证获取的证书,在命令行下执行”openss verify server.pem”。

  如果证书内容被篡改,那么执行后的结果如清单 4 所示:

  清单 4. 证书验证失败

  [root@wks547385wss openssl]# openssl verify server.pem

  unable to load certificate

  19280:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:947:

  19280:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1

  error:tasn_dec.c:304:Type=X509

  19280:error:0906700D:PEM routines:PEM_ASN1_read_bio:ASN1 lib:pem_oth.c:82:

  否则的话,我们就能得到认证通过,结果如下:

  清单 5. 证书验证成功

  [root@wks547385wss openssl]# openssl verify server.pem

  server.pem: OK

  •   客户端没有保存认证服务器端的证书的根证书;

  1. 使用参数-state检查是否在握手协议的证书认证时失败

  清单 6. 显示 SSL 握手协议状态

  [root@wks547385wss openssl]# openssl s_client -connect www6.software.ibm.com:443 -state

  CONNECTED(00000003)

  SSL_connect:before/connect initialization

  SSL_connect:SSLv2/v3 write client hello A

  SSL_connect:SSLv3 read server hello A

  depth=1 /C=US/O=Equifax/OU=Equifax Secure Certificate Authority

  verify error:num=19:self signed certificate in certificate chain

  verify return:0

  SSL_connect:SSLv3 read server certificate A

  SSL_connect:SSLv3 read server done A

  SSL_connect:SSLv3 write client key exchange A

  SSL_connect:SSLv3 write change cipher spec A

  SSL_connect:SSLv3 write finished A

  SSL_connect:SSLv3 flush data

  SSL_connect:SSLv3 read finished A

32/3<123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号