如何在Linux OS上自动从实时网络流量中提取X.509证书

前端之家收集整理的这篇文章主要介绍了如何在Linux OS上自动从实时网络流量中提取X.509证书前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果有人能指出我如何在 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文件的参与,它被用于手动提取证书.

任何人都可以帮助修改上述命令以满足我的要求或建议任何其他替代方法来做同样的事情.

@H_404_13@解决方法
您是否尝试从数据包捕获中专门提取它,或者您是否只想在握手期间从命令行获取证书?

如果您只需要获取证书本身,则可以执行以下操作:

echo | openssl s_client -connect sub.domain.tld:443 | openssl x509 -noout -text

如果在没有回滚到openssl的情况下运行命令,那么您可以看到有关证书的更多详细信息,但第二个openssl命令会提取证书本身.

需要回显管道才能使OpenSSL shell干净地退出以返回到Bash提示符.

这显然会将所有内容写入STDOUT.如果要保存证书,则需要通过使用>结束命令来重定向文件. filename.crt.如果证书链中存在任何错误,它们将不会以文件结尾,而是写入STDERR.

猜你在找的Linux相关文章