Thêm chứng chỉ tự ký vào danh sách tin cậy của Wap


88

Tôi đã tạo chứng chỉ tự ký cho máy chủ xây dựng của mình và tôi muốn tin tưởng toàn cầu chứng chỉ trên máy của mình, vì tôi đã tự tạo khóa và tôi phát ốm khi thấy cảnh báo.

Tôi đang dùng Ubuntu 12.04. Làm cách nào tôi có thể lấy chứng chỉ và tin tưởng toàn cầu để các trình duyệt (Google Chrome), tiện ích CLI (wget, curl) và ngôn ngữ lập trình (Python, Java, v.v.) tin tưởng kết nối với https://mysite.com mà không cần hỏi Câu hỏi?


Tất cả các TLS nên được vectơ thông qua OpenSSL, vì vậy đó là nơi để tìm tài liệu. Trong trường hợp này: gagravarr.org/wr/openssl-certs/ từ có vẻ hữu ích.
msw

Câu trả lời:


88

Câu trả lời đơn giản cho điều này là khá nhiều ứng dụng sẽ xử lý nó khác nhau.

Ngoài ra OpenSSL và GNUTLS (các thư viện xử lý chứng chỉ được sử dụng rộng rãi nhất được sử dụng để xử lý các chứng chỉ đã ký) hoạt động khác nhau trong việc xử lý các certs cũng làm phức tạp vấn đề. Ngoài ra các hệ điều hành sử dụng các cơ chế khác nhau để sử dụng "CA gốc" được sử dụng bởi hầu hết các trang web.

Điều đó sang một bên, lấy Debian làm ví dụ. Cài đặt ca-certificatesgói:

apt-get install ca-certificates

Sau đó, bạn sao chép một nửa công khai chứng chỉ CA không đáng tin cậy (chứng chỉ bạn sử dụng để ký CSR) vào thư mục chứng chỉ CA (với quyền root):

cp cacert.pem /usr/share/ca-certificates

Và lấy nó để xây dựng lại thư mục với chứng chỉ của bạn đi kèm, chạy dưới quyền root:

dpkg-reconfigure ca-certificates

và chọn asktùy chọn, cuộn đến chứng chỉ của bạn, đánh dấu nó để đưa vào và chọn ok.

Hầu hết các trình duyệt sử dụng cơ sở dữ liệu CA của riêng họ và vì vậy các công cụ như certutilphải được sử dụng để sửa đổi nội dung của chúng (trên Debian được cung cấp bởi libnss3-toolsgói). Ví dụ: với Chrome, bạn chạy một số thứ:

certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n "My Homemade CA" -i /path/to/CA/cert.file

Firefox sẽ cho phép bạn duyệt đến chứng chỉ trên đĩa, nhận ra đó là tệp chứng chỉ và sau đó cho phép bạn nhập nó vào danh sách Root CA.

Hầu hết các lệnh khác, chẳng hạn như curlchuyển đổi dòng lệnh bạn có thể sử dụng để trỏ đến CA của mình,

 curl --cacert  /path/to/CA/cert.file https://...

hoặc bỏ xác nhận SSL hoàn toàn

 curl --insecure https://...

Phần còn lại sẽ cần điều tra riêng nếu ca-certificatesthủ thuật tương tự không sắp xếp nó cho ứng dụng cụ thể đó.


Ngoài ra, như đã nói ở đây , thêm chứng chỉ CA cho Java là tương tự như vậy một vấn đề riêng biệt.
Naftuli Kay

2
Sau khi sao chép chứng chỉ vào / usr / share / ca-cert, tôi không thể thấy nó trong dpkg-reconfigure ca-certificatesdanh sách. Tôi đang làm gì sai?
Georges Dupéron 17/2/2015

19
@ GeorgesDupéron Điều đó đã xảy ra với tôi. Tôi đã giải quyết nó bằng cách đổi tên chứng chỉ từ whatever.pemthành whatever.crt.
Xin chào thế giới


2
FYI, tôi đã có một tệp chứng chỉ có tên .cer, và nó không hoạt động. Tôi đã phải đổi tên .crtnó để được công nhận.
Tri Nguyễn

54

Phương pháp không tương tác

Để sử dụng trong ngữ cảnh không tương tác (ví dụ: công thức đầu bếp), bạn có thể sử dụng trình tự sau.

sudo cp my.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
  • Đã thử nghiệm và hoạt động trên debian 5/6 & Ubuntu 14.04.
  • Để biết thêm thông tin, xem man update-ca-certificates

Phương pháp này được ưa thích hơn phương pháp của @ Drav, vì /usr/share/thường được dành riêng cho các tệp được thêm bởi OS / apt-get.


4
Tốt hơn là sao chép các tệp vào /usr/local/share/ca-certificates/như được đề cập trong các trang hướng dẫn
ortang 4/2/2016

3
FYI the A phải là a .crt, tôi thấy .certtuyên bố rằng nó đã được thêm nhưng không giúp được gì
KCD

6

Trên Fedora 23, thêm tệp .pem hoặc .der vào /etc/pki/ca-trust/source/anchors/và chạy sudo update-ca-trust extract.

Xem man update-ca-trustđể biết chi tiết, ví dụ: sử dụng / etc hoặc / usr.


4

Tính bằng centos:

cp *.pem /etc/pki/ca-trust/source/anchors/
update-ca-trust extract

Khi tôi làm openssl connecttôi nên chỉ định thư mục này / neo? Tôi vẫn đang gặp lỗi "self signed certs
Janac Meena

2

Phương pháp tiếp cận không tương tác (18 tháng 10)
cho các hệ thống dựa trên debian gần đây

Có một sự khác biệt giữa việc thêm một chứng chỉ vào cửa hàng của chủ nhà và kích hoạt nó để các ứng dụng thực sự sử dụng chúng. Một chứng chỉ hiện có trong cửa hàng không nhất thiết phải được sử dụng (mặc dù tôi phải thừa nhận rằng vẫn còn rất nhiều gói bị sai)
Điều này có thể gây nhầm lẫn khi bạn thiết lập một gói xem xét /etc/ca-certificate.confvà đơn giản là từ chối sử dụng chứng chỉ của bạn mặc dù nó có đã được thêm vào mà không có lỗi. Bạn cần nói update-ca-certificatesrõ ràng với (không chỉ sao chép mà) kích hoạt chứng chỉ bằng cách thêm nó vào /etc/ca-certificate.confhoặc /etc/ca-certificate/update.d.

CERT=mycert.crt
cp /mypath/to/$CERT /usr/share/ca-certificates/$CERT
    # notice the + sign which tells to activate the cert!!!
echo "+$CERT" >/etc/ca-certificates/update.d/activate_my_cert
dpkg-reconfigure ca-certificates;

Bây giờ ở đây nó trở nên khó hiểu khi có một cách để hoàn toàn tin tưởng một chứng chỉ bằng cách sử dụng một đường dẫn khác:

CERT=mycert.crt
cp /mypath/to/$CERT /usr/local/share/ca-certificates/$CERT
update-ca-certificates;
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.