Không thể xác minh cục bộ thẩm quyền của nhà phát hành


19

Tôi không thể mở bất kỳ URL https nào bằng cách sử dụng wget hoặc curl:

$ wget https://www.python.org
--2015-04-27 17:17:33--  https://www.python.org/
Resolving www.python.org (www.python.org)... 103.245.222.223
Connecting to www.python.org (www.python.org)|103.245.222.223|:443... connected.
ERROR: cannot verify www.python.org's certificate, issued by "/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA":
  Unable to locally verify the issuer's authority.
To connect to www.python.org insecurely, use '--no-check-certificate'.

$ curl https://www.python.org
curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). If the default
 bundle file isn't adequate, you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.

Điều này đang sử dụng wget 1.12 và curl 7.30.0 trên CentOS 5.5. Nghe có vẻ như có gì đó không ổn với cửa hàng chứng chỉ địa phương của tôi, nhưng tôi không biết làm thế nào để tiếp tục từ đây. Có ý kiến ​​gì không?

Cập nhật: Sau khi nâng cấp gói openssl từ 0.9.8e-12.el5_4.6 lên 0.9.8e-33.el5_11, giờ đây đã có một lỗi khác:

$ wget https://pypi.python.org
--2015-04-28 10:27:35--  https://pypi.python.org/
Resolving pypi.python.org (pypi.python.org)... 103.245.222.223
Connecting to pypi.python.org (pypi.python.org)|103.245.222.223|:443... connected.
ERROR: certificate common name "www.python.org" doesn't match requested host name "pypi.python.org".
To connect to pypi.python.org insecurely, use '--no-check-certificate'.

Tôi nghĩ rằng các chứng chỉ gốc là trong ca-certificatesgói. Gói này đã được cài đặt chưa? Có thể thử cài đặt lại nó. Nếu đó không phải là vấn đề, hãy chạy strace -o /tmp/wget.strace wget https://www.python.orgvà đăng theo dõi kết quả, điều đó sẽ cho chúng ta biết vấn đề đang ở đâu.
Gilles 'SO- ngừng trở nên xấu xa'

@Gilles - Tôi đã nâng cấp gói openssl từ 0.9.8e-12.el5_4.6 lên 0.9.8e-33.el5_11 và lỗi đã biến mất (có lẽ điều này đã cài đặt lại chứng chỉ gốc?), Nhưng bây giờ có một lỗi khác.
aco

Có vẻ như một lỗi thoáng qua với trang web cụ thể này. Các trang web khác làm việc?
Gilles 'SO- ngừng trở nên xấu xa'

@Gilles - Các trang web khác cũng không hoạt động. Ví dụ: Google trả về lỗi: tên chung của chứng chỉ "google.com" không khớp với tên máy chủ được yêu cầu "www.google.com.vn".
aco

Tôi có thể khắc phục vấn đề tương tự khi vô hiệu hóa Selinux : crypt.gen.nz/selinux/disable_selinux.html Chúc mừng!

Câu trả lời:




2

wgettrước 1.14 không hỗ trợ Tên thay thế chủ đề (SAN) *. PyPI sử dụng SAN như một giải pháp thay thế cho CN trong chứng chỉ của mình và wget đang nghẹt thở vì sự không phù hợp. Nâng cấp wget nên giải quyết nó.

* hoặc có thể là Chỉ định Tên Máy chủ (SNI) - Tôi không chắc chắn áp dụng ở đây.

Người giới thiệu:


1

Giải pháp 1:

openssl s_client -connect whateversite.com:443 -debug 

Lấy mã chứng chỉ và sao chép vào /etc/ssl/certs.

$ wget https://www.python.org --ca-certificate=/etc/ssl/certsfile

Nếu bạn muốn đi một cách không an toàn thì hãy thử giải pháp 2

Giải pháp 2:

$ wget https://www.python.org --no-check-certificate

hoặc sử dụng Curl

$ curl https://www.python.org --insecure

9
Bác sĩ, tôi không thể đi bằng chân trái. - Giải pháp 1: di chuyển những gì bạn cần đến gần ghế của bạn để bạn không cần phải đứng. Giải pháp 2: hop. Không Không, giải pháp là khắc phục vấn đề. Trong đó, ở đây, có nghĩa là sửa chữa hoặc cài đặt lại chứng chỉ CA gốc.
Gilles 'SO- ngừng trở nên xấu xa'

4
điều này chỉ tốt cho chứng chỉ tự cấp do tự ký
Pavel Niedoba

1
Đúng, đây là một ý tưởng tồi. Giải pháp 1 là không an toàn quá . Tất cả những gì bạn đang làm là bỏ qua việc kiểm tra của wget bằng cách tự động tin tưởng vào chứng chỉ từ thời điểm này trở đi. Bạn nên khắc phục sự cố tiềm ẩn bằng cách thực sự sửa các chứng chỉ gốc mà wget có quyền truy cập.
Andrew Ferrier

Mặc dù đây chỉ là một cách giải quyết nếu hệ thống của bạn buộc bạn phải sử dụng danh sách chứng chỉ gốc bị hỏng hoặc cài đặt bảo mật hà khắc, nhưng nó không đáng bị ghét.
Nurettin

0

Cập nhật thời gian trên máy chủ. Một giây có thể gây ra vấn đề này!

Kiểm tra với: date

Redhat / CentOS 6/7 yum -y install ntpdate; /usr/sbin/ntpdate -u pool.ntp.org

Ubuntu / Debian apt-get -y install ntpdate; /usr/sbin/ntpdate -u pool.ntp.org


0

echo "check_cert ve = tắt" >> ~ / .wgetrc


1
Điều này là khá nguy hiểm để đề xuất.
ploth

Điều này chỉ liên quan đến wgetlệnh và nó không phải là giải pháp mà là cách giải quyết.
mrc02_kr
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.