Làm cách nào để xác minh chứng chỉ SSL trên dòng lệnh?


52

Tôi đang cố xác thực / xác minh rằng khóa rsa, gói ca và chứng chỉ được lưu trữ ở đây là ổn. Họ không được phục vụ bởi một máy chủ web. Làm thế nào tôi có thể xác minh chúng?


Nhìn vào phần openssl x509hướng dẫn.
alex

Hướng dẫn xác minh OpenSSL có thể giúp bạn ở đây. Ngoài ra, xem trang này có một số ví dụ tuyệt vời.
Stefan Lasiewski

Câu trả lời:


61

Giả sử chứng chỉ của bạn ở định dạng PEM, bạn có thể làm:

openssl verify cert.pem

Nếu "gói ca" của bạn là một tệp chứa các chứng chỉ trung gian bổ sung ở định dạng PEM:

openssl verify -untrusted ca-bundle cert.pem

Nếu openssl của bạn không được thiết lập để tự động sử dụng một bộ chứng chỉ gốc đã cài đặt (ví dụ: trong /etc/ssl/certs), thì bạn có thể sử dụng -CApathhoặc -CAfilechỉ định CA.


9
Cảnh báo, lệnh xác minh openssl được cho phép nhiều hơn bạn mong đợi! Theo mặc định, ngoài việc kiểm tra CAfile đã cho, nó cũng kiểm tra mọi CA phù hợp trong thư mục certs của hệ thống, ví dụ / etc / ssl / certs. Để ngăn chặn hành vi này và đảm bảo bạn đang kiểm tra chứng chỉ CA cụ thể do CAfile cung cấp, bạn cũng phải vượt qua tùy chọn -CApath với thư mục không tồn tại, ví dụ: openssl verify -verbose -CApath nosuchdir -CAfile cacert.pem server .crt
DSimon

2
Một cảnh báo nữa: Nếu bạn sử dụng -CApath nosuchdirthì sự kết hợp của server.crt và cacert.pem phải bao gồm CA gốc; nếu openssl chỉ có thể hoạt động với một CA trung gian với các tệp đó thì nó sẽ khiếu nại.
DSimon

Nó nói không có tập tin như vậy trong /certs/. điều này sẽ gây ra vấn đề? bởi vì tôi xếp chồng lên nhau trong tình huống máy chủ của tôi hoạt động, http curl hoạt động, nhưng https .. curl bị lỗi. nơi trang web ngừng hoạt động.
Giorgi Gvimradze

18

Đây là một lớp lót để xác minh chuỗi chứng chỉ:

openssl verify -verbose -x509_strict -CAfile ca.pem -CApath nosuchdir cert_chain.pem

Điều này không cần phải cài đặt CA ở bất cứ đâu.

Xem https://stackoverflow.com/questions/20409534/how-does-an-ssl-certert-chain-bundle-work để biết chi tiết.


1
Cảnh báo, tùy chọn -CAfile dễ dàng hơn bạn mong đợi. Xem bình luận của tôi về câu trả lời được chấp nhận để biết chi tiết.
DSimon

1
@DSimon, tôi đã thêm -CApath nosuchdirđiều này để trả lời. Cảm ơn bạn.
Vadzim

Không vấn đề, tôi săn long giup. :-) Một cảnh báo mà tôi đã tìm ra sau khi đăng bình luận trước đó của mình: nếu tệp được chỉ định -CAfilechỉ là chứng chỉ trung gian, thì openssl sẽ khiếu nại. Đây là hành vi đúng, vì verifyyêu cầu một chuỗi hoàn chỉnh cho đến một CA gốc, nhưng có thể gây hiểu nhầm.
DSimon

2
Phiên bản của tôi ( OpenSSL 1.1.1 11 Sep 2018) yêu cầu đối số -CApathphải là một thư mục hiện có.
Jake Cobb
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.