Câu hỏi Cách lưu chứng chỉ SSL máy chủ từ xa dưới dạng tệp


Tôi cần tải xuống chứng chỉ SSL của máy chủ từ xa (không phải HTTPS, nhưng bắt tay SSL phải giống như Google Chrome / IE / wget và curl đều cho phép lỗi kiểm tra chứng chỉ) và thêm chứng chỉ đáng tin cậy trong máy tính xách tay của tôi Windows ' chứng chỉ lưu trữ kể từ khi tôi không thể để có được guys IT của tôi để cho tôi chứng chỉ CA.

này là dành cho truyền thông văn phòng vì vậy tôi không thể thực sự sử dụng khách hàng thực tế để có được chứng chỉ.

Làm thế nào để làm điều này, tôi có Windows 7 và một đống Linux tiện dụng vì vậy bất kỳ công cụ / ngôn ngữ kịch bản là tốt.


264
2018-01-18 07:43


gốc


Để có được chứng chỉ của máy chủ thư, xem security.stackexchange.com/questions/70528/… - That Brazilian Guy


Các câu trả lời:


Nếu bạn có quyền truy cập OpenSSL, hãy thử

openssl s_client -connect {HOSTNAME}:{PORT} -showcerts

thay thế {HOSTNAME} và {PORT} bằng bất kỳ giá trị nào của bạn.


251
2017-08-17 07:20



Tôi thích tùy chọn này vì tôi không phải mở một GUI, và tôi có thể thực hiện nó thông qua SSH từ các máy chủ của chúng tôi. - bramp
Plus nó hoạt động cho các giao thức khác với HTTP. - matt
giải pháp của elec3647 hoàn toàn tự động giải nén PEM trong một đường ống vỏ. - phs
443 là cổng mặc định cho HTTPS. - Flimm
tôi cần -servername tùy chọn để nhận chứng chỉ máy chủ ảo. gist.github.com/Artistan/5219484efb2fe51cd064175b3d0d5971 - Artistan


Một phương pháp nhanh chóng để lấy chứng chỉ được kéo và tải xuống sẽ là chạy lệnh sau để dẫn đầu ra từ các lệnh đến các lệnh ssl x509 mà chỉ loại bỏ mọi thứ không liên quan. Ví dụ:

openssl s_client -showcerts -connect server.edu:443 </dev/null 2>/dev/null|openssl x509 -outform PEM >mycertfile.pem

Để sử dụng chứng chỉ, với wget,

wget https:/server.edu:443/somepage --ca-certificate=mycertfile.pem

184
2017-09-05 13:47



Tôi đã thử điều này (trên một trang web khác) - nhưng đã được dự kiến ​​chuỗi đầy đủ của certs: có vẻ như điều này chỉ mang lại đầu tiên trong chuỗi - đó là để được mong đợi? - monojohnny
Điều đó không làm việc cho tôi: không thể tải chứng chỉ 27262: lỗi: 0906D06C: PEM thường lệ: PEM_read_bio: không có dòng bắt đầu: /SourceCache/OpenSSL098/OpenSSL098-50/src/crypto/pem/pem_lib.c: 648: Mong đợi: TRUSTED CHỨNG CHỈ - Janusz
Tôi đồng ý với monojohnny, điều này không cung cấp cho bạn chuỗi đầy đủ. - Michael Munsey
Cuối nhưng @monojohnny: openssl s_client -showcerts hiển thị tất cả các certs trong chuỗi nhận được (nếu kết nối thành công), nhưng đường ống qua openssl x509 chỉ lấy cái đầu tiên và loại bỏ phần còn lại. Để có được tất cả chúng thay vì sử dụng ...| sed -n '/^-----BEGIN CERT/,/^-----END CERT/p' hoặc là ...| awk '/^-----BEGIN CERT/,/^-----END CERT/' Bạn cũng có thể sử dụng một chút phức tạp hơn awk để đặt mỗi chứng chỉ vào một tệp riêng biệt giúp dễ sử dụng hơn với openssl và một số công cụ khác. - dave_thompson_085
Để sử dụng chứng chỉ, với wget, wget https:/server.edu:443/somepage --ca-certificate=mycertfile.pem - MUY Belgium


Thành thật mà nói, tôi chưa bao giờ thử điều này trước đây (không bao giờ cần thiết) tuy nhiên, tôi đã thử trong Firefox và có vẻ như nó hoạt động để tiết kiệm:

  1. Nhấp vào biểu tượng chứng chỉ SSL ở trên cùng / Padlock ở phía dưới.
  2. Nhấp chuột View Certificate
  3. Nhấp vào Details Chuyển hướng
  4. Chọn chứng chỉ bạn muốn từ hệ thống phân cấp [không được khoanh tròn trong ảnh]
  5. Nhấp chuột Export

alt text


111
2018-01-18 07:56



Điều cần biết - nhưng đối với sự tò mò của tôi, bạn có thể giải thích thêm một chút về những gì bạn đang cố gắng đạt được không? Tôi chưa bao giờ cần phải xuất chứng chỉ ứng dụng khách SSL và tôi rất tò mò tại sao bạn thực sự sẽ cần phải làm điều đó ... - William Hilsum
Đó là chứng chỉ máy chủ chứ không phải chứng chỉ ứng dụng khách. Lý do chính để xuất khóa và chứng chỉ riêng của ứng dụng khách là duy trì bản sao lưu hoặc nếu bạn muốn xác thực bằng trình duyệt hoặc máy tính khác. - gbroiles
@ gbroiles - đọc câu hỏi, ông đã sử dụng các thuật ngữ sai, nhưng điều này giải quyết vấn đề của mình. - William Hilsum
đúng, và tôi đã trả lời câu hỏi của bạn - tại sao một người nào đó muốn lưu chứng chỉ ứng dụng khách? "Chứng chỉ ứng dụng khách SSL" là thuật ngữ của bạn, không phải của anh ấy. - gbroiles
Có vẻ như không có cách nào để làm điều này trong Chrome, đúng không ?! - fatuhoku


Xuất chứng chỉ bằng trình duyệt Chrome

  1. Kết nối với trang web bằng SSL (https: // bất cứ điều gì)

2. Nhấp vào biểu tượng khóa và sau đó nhấp vào Chi tiết

  1. Vì Chrome phiên bản 56, bạn thực hiện các thao tác sau: vào menu Three Dots -> Công cụ khác -> Công cụ dành cho nhà phát triển, sau đó nhấp vào Tab bảo mật. Điều này sẽ cung cấp cho bạn một Tổng quan về bảo mật với một Xem chứng chỉ nút.

  2. Nhấp vào Xem chứng chỉ nút.

    Một cửa sổ phương thức sẽ mở ra. Nó có hai tấm. Phần trên cùng cho thấy hệ thống phân cấp tin cậy của chứng chỉ của trang web (chứng chỉ cuối cùng được liệt kê), chứng chỉ trung gian và chứng chỉ gốc (phần trên cùng).

    Ô thứ hai, lớn hơn, hiển thị chi tiết của một trong các chứng chỉ.

    Có thể có không hoặc nhiều chứng chỉ trung gian.

    Lưu ý rằng chứng chỉ gốc có biểu tượng có viền vàng. Những người khác có một đường viền màu xanh.

    Xem ảnh chụp màn hình dưới đây.

  3. Để xuất chứng chỉ:

    1. Trước tiên, nhấp vào biểu tượng của chứng chỉ trong hệ thống phân cấp tin cậy.
    2. Chứng chỉ sẽ được hiển thị trong phần chính của phương thức.
    3. Nhấp vào biểu tượng lớn của chứng chỉ trong phần chính của phương thức. Kéo biểu tượng cho màn hình của bạn. Sau đó, Chrome sẽ sao chép chứng chỉ vào máy tính của bạn.

enter image description here


40
2017-12-26 18:45



Tôi đã phải kéo biểu tượng vào một trình soạn thảo văn bản, máy tính để bàn không làm việc cho tôi. - Cory Klein
Đối với Chrome trên Windows, sau khi bạn nhấp vào 'Xem chứng chỉ', phương thức khác với Mac. Nhấp vào tab Chi tiết và sau đó Sao chép vào Tệp ... Sau đó chọn định dạng và tên tệp, đơn giản. - PolyTekPatrick
Khi tôi sử dụng Chrome v63 trên Mac OS, tệp văn bản tôi nhận được từ việc kéo chứng chỉ có thể đọc được, nhưng không phải ở bất kỳ định dạng có cấu trúc nào mà tôi có thể tìm ra cách chuyển đổi thành dạng có thể đọc được bằng máy như X.509 .crt. - Jim DeLaHunt
không có sự khác biệt nếu mở từ thanh địa chỉ hoặc từ tab dev này, và vẫn không thể tải xuống crt ... - user25


Đây là câu trả lời của gbroilesnhưng tôi muốn chỉ ra rằng dự án cURL có một trang với một vài chi tiết khác về sử dụng openssl để lưu chứng chỉ SSL của máy chủ từ xa:

  • openssl s_client -connect {HOSTNAME}: {PORT} | tee logfile
  • Kiểu QUIT và nhấn phím Enter / Return.
  • Chứng chỉ sẽ được liệt kê giữa các điểm đánh dấu "BEGIN CERTIFICATE" và "END CERTIFICATE".
  • Nếu bạn muốn xem dữ liệu trong chứng chỉ, bạn có thể sử dụng:

    openssl x509 -inform PEM -in certfile -text -out certdata

    Ở đâu certfile là chứng chỉ được trích xuất từ logfile. Nhìn vào certdata.


16
2017-10-18 22:10





tự động

-servername đã được yêu cầu cho tôi để có được cert đúng từ máy chủ ảo trên máy chủ của chúng tôi.

openssl s_client -showcerts -connect host.name.com:443 -servername host.name.com </dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > host.name.com.pem

bạn cũng có thể chuyển đổi thành chứng chỉ cho máy tính để bàn

openssl x509 -inform PEM -in host.name.com.pem -outform DER -out host.name.com.cer

phần cuối cùng là thêm nó vào certs của bạn, không chắc chắn trên cửa sổ
cho mac keychain tôi đã sử dụng, nên tương tự ...

sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain host.name.com.cer


5
2018-01-25 15:59



gist.github.com/Artistan/5219484efb2fe51cd064175b3d0d5971 - Artistan


Điều này sẽ cho kết quả chỉ chứa các chứng chỉ

echo QUIT | \
openssl s_client -showcerts -connect hostname:port | \
awk '/-----BEGIN CERTIFICATE-----/ {p=1}; p; /-----END CERTIFICATE-----/ {p=0}' "

1
2018-05-23 01:20