Tôi phải cài đặt chứng chỉ ở đâu để wget và các chương trình MacPorts khác sẽ tìm thấy chúng?


7

Tôi phải cài đặt chứng chỉ tùy chỉnh để chúng hoạt động với wget được cài đặt qua MacPorts. Tôi không thể tìm đúng thư mục.

Tôi đã thử cài đặt trong / System / Library / OpenSSL / certs nhưng thư mục đó dường như được sử dụng bởi wget. Chứng chỉ tương tự được cài đặt trong móc khóa của tôi bị bỏ qua.


Ngoài ra còn có một certsynccổng giữ gói chứng chỉ OpenSSL đồng bộ với móc khóa hệ thống của bạn (bằng cách nối tất cả các CA móc khóa của bạn với nhau /opt/local/etc/openssl/cert.pem). Nếu bạn chỉ quan tâm đến wgetviệc làm, thì đó sudo port install certsync; sudo port load certsynccó thể là giải pháp đơn giản nhất. Tôi đã thử nghiệm điều này và nó hoạt động với một CA gốc trung gian được cài đặt vào móc khóa hệ thống bởi chủ nhân của tôi. Xem câu trả lời của tôi dưới đây để biết thêm chi tiết.
TheDudeAdides

Câu trả lời:


4

Tạo một wgetrctệp có chứa:

ca_directory=/System/Library/OpenSSL/certs

Trên Linux và BSD, tệp được đặt tại ~/.wgetrc(và toàn /etc/wgetrchệ thống). Tôi không biết nếu nó giống với MacPorts.


2
Rất tuyệt. Đó là /opt/local/etc/wgetrctrên macports.
vy32

9

Câu trả lời ở trên không giải quyết được vấn đề cho tôi, nhưng tôi đã tìm thấy một giải pháp dễ dàng tương tự với MacPorts:

sudo port install curl-ca-bundle

Để cài đặt gói Chứng chỉ tự động và sau đó đẩy tham chiếu của nó đến cấu hình cài đặt wget:

echo CA_CERTIFICATE=/opt/local/share/curl/curl-ca-bundle.crt >> ~/.wgetrc

Đây là một câu trả lời hay và nó giải quyết một vấn đề phổ biến với wgetcurltừ MacPorts (nhận lỗi chứng chỉ cho mọi trang web SSL / TLS). Đó không chỉ là một giải pháp cho những gì OP đã yêu cầu: một phương pháp cài đặt " chứng chỉ tùy chỉnh " để wgetcó thể tìm thấy chúng.
TheDudeAdides

2

Tôi không thể thêm nhận xét vào giải pháp của grawity, vì vậy tôi đoán tôi sẽ tạo một câu trả lời mới ...

giải pháp của grawity dường như là không đầy đủ. Nó hoạt động vì bạn đã "thử cài đặt trong / System / Library / OpenSSL / certs".

Tôi đã cài đặt OpenSSL từ MacPorts (mới hơn phiên bản đi kèm với bản cài đặt Snow Leopard của tôi). Điều này đặt một cert.pemtập tin vào /opt/local/etc/openssl/, sau đó tôi có thể chỉ ra bằng phương pháp của grawity. Đây thực chất là những gì tôi đã làm:

sudo port install openssl
sudo echo 'ca_directory = /opt/local/etc/openssl' > /opt/local/etc/wgetrc
sudo cat /opt/local/etc/wgetrc.sample >> /opt/local/etc/wgetrc`

Giải pháp của Ain có lẽ cũng có tác dụng với tôi.


Bài viết gốc đã yêu cầu một phương pháp để cài đặt "chứng chỉ tùy chỉnh". Điều này có nghĩa là OP có something.pemtệp riêng của họ và họ chỉ muốn đặt nó ở nơi wgetđã biết (hoặc có thể được định cấu hình) để tìm tệp.
TheDudeAdides

0

(Xin chào từ năm 2019!) Hiện tại có một certsynccổng giữ các chứng chỉ OpenSSL đồng bộ với móc khóa hệ thống của bạn, có thể được cài đặt với:

sudo port install certsync

MacPorts nên tạo một mục khởi động launchd để thực hiện đồng bộ hóa định kỳ, nhưng nếu không, sudo port load certsyncsẽ làm điều đó (sử dụng port unloadđể vô hiệu hóa nó).

Điều này có thể hữu ích, ví dụ, nếu máy Mac của bạn được cấu hình sẵn bởi chủ nhân của bạn với CA gốc cục bộ hoặc các máy chủ trung gian khác hoặc bạn có CA riêng vì những lý do khác. Trong khi không phải là không thể, nó sẽ là một nỗi đau để

  1. giải nén chúng từ móc khóa hệ thống của bạn,
  2. chỉ để đổ chúng vào một nơi khác trên hệ thống tập tin của bạn (mà bạn được đảm bảo sẽ quên trong sáu tháng),
  3. và sau đó, có khả năng, cũng phải cấu hình mọi tiện ích dòng lệnh khác để trỏ đến chúng (như với /opt/local/etc/wgetrccác giải pháp khác ở đây).

Lưu ý rằng certsynccổng xung đột với curl-ca-bundle, nằm trong chuỗi phụ thuộc cho nhiều gói MacPort khác, bao gồm curl. Nếu bạn cố gắng tiếp tục, bạn sẽ nhận được các cảnh báo như thế này:

$ sudo port install certsync

Error: Can't install certsync because conflicting ports are active: curl-ca-bundle
Error: Follow https://guide.macports.org/#project.tickets to report a bug.
Error: Processing of port certsync failed

$ sudo port uninstall curl-ca-bundle
Note: It is not recommended to uninstall/deactivate a port that has dependents as
it breaks the dependents.
The following ports will break:
 p11-kit @0.23.16.1_0
 neomutt @20180716_0
 neomutt @20180716_1
 curl @7.65.3_1
 subversion @1.12.2_0
Continue? [y/N]:

Các cổng "bị hỏng" có thể vẫn hoạt động bất kể vì certsyncvề cơ bản thực hiện công việc curl-ca-bundlebằng cách ghép tất cả các CA của hệ thống của bạn vào /opt/local/etc/openssl/cert.pem, nhưng tôi không thể chứng nhận điều đó.

Tuy nhiên, nếu bạn chỉ quan tâm đến việc wgetlàm việc và hài lòng với tích hợp sẵn /usr/bin/curl(được cấu hình để sử dụng kho chứng chỉ toàn hệ thống macOS), thì chỉ cần cài đặt certsynccổng có thể là giải pháp đơn giản nhất.

Nguồn : phần bình luận Sửa lỗi chứng chỉ SSL CA với OpenSSL từ MacPorts (andatche.com)


Khá gọn gàng! Bây giờ chỉ cần cập nhật móc khóa hệ thống!
vy32
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.