如果有人能指出我如何在
Linux OS上的客户端和服务器之间的握手阶段自动从实时网络流量中提取X.509证书,我将不胜感激.
一些类似的问题在Extracting SSL certificates from the network or pcap files年前一段时间被安静地问过,但答案是不完整的.
答案说使用以下命令
ssldump -Nr file.pcap | awk 'BEGIN {c=0;} { if ($0 ~ /^[ ]+Certificate$/) {c=1; print "========================================";} if ($0 !~ /^ +/ ) {c=0;} if (c==1) print $0; }'
但是由于pcap文件的参与,它被用于手动提取证书.
任何人都可以帮助修改上述命令以满足我的要求或建议任何其他替代方法来做同样的事情.
解决方法
您是否尝试从数据包捕获中专门提取它,或者您是否只想在握手期间从命令行获取证书?
如果您只需要获取证书本身,则可以执行以下操作:
echo | openssl s_client -connect sub.domain.tld:443 | openssl x509 -noout -text
如果在没有回滚到openssl的情况下运行命令,那么您可以看到有关证书的更多详细信息,但第二个openssl命令会提取证书本身.
需要回显管道才能使OpenSSL shell干净地退出以返回到Bash提示符.
这显然会将所有内容写入STDOUT.如果要保存证书,则需要通过使用>结束命令来重定向到文件. filename.crt.如果证书链中存在任何错误,它们将不会以文件结尾,而是写入STDERR.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。