Nếu bạn chỉ muốn xem SAN, grep DNS:
là giải pháp rõ ràng.
Nếu bạn muốn có một danh sách sạch hơn để xử lý thêm, bạn có thể sử dụng biểu thức chính Perl này để trích xuất chỉ các tên: @names=/\sDNS:([^\s,]+)/g
Ví dụ:
true | openssl s_client -connect example.com:443 2>/dev/null \
| openssl x509 -noout -text \
| perl -l -0777 -ne '@names=/\bDNS:([^\s,]+)/g; print join("\n", sort @names);'
Mà sẽ xuất này:
example.com
example.edu
example.net
example.org
www.example.com
www.example.edu
www.example.net
www.example.org
Vì vậy, bạn có thể dẫn nó đến while read name; do echo "processing $name ..."; done
vv
Hoặc cho danh sách được phân tách bằng dấu phẩy trên một dòng, thay thế join("\n",
bằngjoin(",",
(Công -0777
tắc cho perl làm cho nó đọc toàn bộ đầu vào cùng một lúc thay vì theo từng dòng)
openssl s_client -showcerts -connect www.example.org:443 | openssl x509 -text