Liệt kê các tên miền trên Chứng chỉ SSL UCC / SAN


15

Có cách nào để liệt kê tất cả các tên miền trên Chứng chỉ SSL SAN / UCC (lý tưởng nhất là sử dụng dòng lệnh trên linux / os x) không?

Rõ ràng phải có một số cách để trích xuất dữ liệu, vì các trình duyệt có thể làm điều đó. Thật không may, tôi có thể xem danh sách nhưng không thể cắt và dán nó.

Câu trả lời:


25

openssl x509 -text < foo.crt nên làm thủ thuật.


3
Đối với hậu thế, đây là toàn bộ lệnh tôi đã sử dụng, vì tôi đang thực hiện nó cho một máy chủ khác:openssl s_client -showcerts -connect www.example.org:443 | openssl x509 -text
Jordan Reiter

3
Để có được danh sách các miền được phân tách không gian sạch, bạn có thể chuyển qua grep và sed như vậyopenssl x509 -text < $CRT | grep 'DNS:' | sed 's/\s*DNS:\([a-z0-9.\-]*\)[,\s]\?/\1 /g'
Geoffrey

Vui lòng cuộn xuống: câu trả lời của panticz.de là tốt hơn ;-)
lucaferrario

8

Bạn có thể liệt kê các tên miền bằng lệnh này (đã thử nghiệm trên linux):

cat cert.pem | openssl x509 -text | grep DNS

Điều này cho một đầu ra tốt hơn so với câu trả lời được chấp nhận.
VaTo

Đúng, đây sẽ là câu trả lời được chấp nhận thay thế.
Kal

0

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 ..."; donevv

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 -0777tắ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)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.