0

SSL certificate error: unable to get local issuer certificate khi dùng Composer

1. Nguyên nhân là gì?

image.png

Khi bạn chạy composer require, Composer sẽ kết nối với Packagist qua giao thức HTTPS. Để đảm bảo kết nối an toàn, PHP cần một file gọi là CA certificate bundle (chứa danh sách các chứng chỉ tin cậy) để xác thực. Nếu PHP không tìm thấy file này, nó sẽ "từ chối hiểu" và quăng ra lỗi curl error 60.

2. Cách khắc phục (3 bước thần tốc)

Bước 1: Tải file chứng chỉ mới nhất Bạn truy cập vào đường dẫn chính thức của Curl để tải file cacert.pem:

  • Link tải: https://curl.se/ca/cacert.pem
  • Sau khi tải về, hãy copy nó vào một nơi cố định, ví dụ: C:\php\extras\ssl\cacert.pem (hoặc trong thư mục cài đặt PHP/Laragon của bạn).

Bước 2: Cấu hình file php.ini

Bạn cần cho PHP biết file bạn vừa tải nằm ở đâu.

  1. Tìm file php.ini mà hệ thống đang dùng (Chạy lệnh php --ini để biết đường dẫn).
  2. Mở file đó lên bằng Notepad hoặc VS Code.
  3. Tìm đến dòng ;curl.cainfo (Lưu ý dấu ; ở đầu là đang bị comment).
  4. Sửa lại thành đường dẫn tuyệt đối nơi bạn vừa lưu file:
curl.cainfo = "C:\php\extras\ssl\cacert.pem"
openssl.cafile = "C:\php\extras\ssl\cacert.pem"

(Nhớ xóa dấu ; ở đầu dòng đi nhé!)

Bước 3: Kiểm tra lại

Tắt Terminal/Command Prompt đi và mở lại để hệ thống nhận cấu hình mới. Sau đó chạy lại lệnh:

composer require spatie/laravel-ray --dev
  1. "Mẹo chữa cháy" (Không khuyến khích) Nếu bạn đang cực kỳ gấp và không muốn cấu hình lằng nhằng, bạn có thể bắt Composer bỏ qua việc kiểm tra SSL (nhưng cách này kém an toàn):
composer config -g disable-tls true

Lưu ý: Sau khi dùng xong, hãy bật lại bằng cách đổi true thành false để bảo vệ máy tính của bạn.

Tổng kết

Nếu bạn đang viết bài hướng dẫn về Ray, bạn có thể thêm một mục "Troubleshooting" nhỏ ở cuối bài. Việc chia sẻ cách fix những lỗi thực tế như thế này thường giúp bài viết của bạn nhận được nhiều "Clip" (lưu trữ) hơn vì nó đánh đúng nỗi đau của người đọc.

Chúc bạn fix lỗi thành công và sớm trải nghiệm sự lợi hại của Spatie Ray! Nếu vẫn kẹt ở đâu, cứ nhắn mình nhé.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí