Cách khắc phục lỗi 'Git SSL Certificate Problem: unable to get local issuer certificate'

intermediate📦 Git2026-06-05| Windows, Linux, macOS, Git CLI, OpenSSL

Error Message

fatal: unable to access 'https://github.com/user/repo.git/': SSL certificate problem: unable to get local issuer certificate
#git#ssl#https#security#devops

Vấn đề

Lỗi này thường xảy ra khi bạn đang thực hiện các lệnh git clone hoặc push thông thường. Thay vì truyền dữ liệu thành công, Git chặn kết nối và đưa ra một thông báo lỗi khó hiểu về "local issuer certificate" (chứng chỉ nhà phát hành cục bộ).

fatal: unable to access 'https://github.com/user/repo.git/': SSL certificate problem: unable to get local issuer certificate

Về bản chất, Git đang cẩn trọng quá mức để bảo vệ bạn. Nó từ chối kết nối vì không thể xác minh rằng máy chủ bạn đang giao tiếp—cho dù đó là GitHub, GitLab hay một phiên bản Bitbucket nội bộ—là hợp lệ. Chuỗi tin cậy (chain of trust) dẫn đến một Nhà xác thực chứng chỉ gốc (Root CA) đã bị hỏng.

Tóm tắt: Các cách sửa nhanh

Nếu bạn đang dùng Windows, hãy sử dụng lệnh này để giải quyết ngay lập tức 90% các trường hợp:

git config --global http.sslBackend schannel

Đối với những trường hợp tạm thời mà vấn đề bảo mật không quá quan trọng (như trong phòng lab nội bộ), bạn có thể bỏ qua việc kiểm tra hoàn toàn. Hãy cân nhắc kỹ trước khi dùng:

git config --global http.sslVerify false

Tại sao lỗi này xảy ra?

Khi bạn thiết lập một kết nối HTTPS, máy chủ sẽ cung cấp một chứng chỉ SSL. Git sẽ kiểm tra chứng chỉ này với "danh bạ" các nhà xác thực đáng tin cậy cục bộ. Nếu ID không khớp hoặc người ký không xác định, Git sẽ ngắt kết nối.

Các nguyên nhân phổ biến bao gồm:

  • Tường lửa doanh nghiệp: Các hệ thống như Zscaler hoặc Fortinet thường chặn lưu lượng truy cập để quét mối đe dọa. Chúng thay thế chứng chỉ thực bằng chứng chỉ doanh nghiệp mà Git không nhận diện được.
  • Chứng chỉ cũ: Bản cài đặt Git cục bộ của bạn có thể đang sử dụng một gói CA (CA bundle) từ hai năm trước, vốn không bao gồm các nhà xác thực mới hơn.
  • Không khớp hệ thống: Git cho Windows đôi khi bỏ qua các chứng chỉ mà hệ điều hành của bạn đã tin tưởng, thay vào đó nó tìm kiếm một tệp ca-bundle.crt cụ thể có thể đang bị thiếu.

Các phương pháp khắc phục

1. Chuyển sang Windows Secure Channel (Tốt nhất cho Windows)

Các bản cài đặt Git tiêu chuẩn sử dụng thư viện OpenSSL. OpenSSL rất mạnh mẽ nhưng yêu cầu bảo trì các tệp chứng chỉ thủ công. Bằng cách chuyển sang backend "schannel", bạn yêu cầu Git sử dụng Kho chứng chỉ (Certificate Store) gốc của Windows.

git config --global http.sslBackend schannel

Vì Windows đã tự động xử lý các bản cập nhật cho Chrome và Edge, cách sửa lỗi này thường giúp các proxy doanh nghiệp và các CA hiện đại hoạt động ngay lập tức mà không cần tinh chỉnh thủ công.

2. Cập nhật CA Bundle thủ công

Người dùng Linux và macOS thường khắc phục thành công bằng cách cập nhật tệp chứng chỉ cơ sở. Bạn có thể tải một gói mới chứa hơn 100 CA đáng tin cậy trực tiếp từ dự án curl.

  • Tải gói mới nhất tại: curl.se/ca/cacert.pem.
  • Di chuyển nó đến một nơi an toàn, ví dụ như ~/.git-certs/cacert.pem.
  • Trỏ Git đến tệp mới:
git config --global http.sslcainfo "/home/user/.git-certs/cacert.pem"

3. Thêm chứng chỉ tùy chỉnh của công ty

Nếu bộ phận IT của bạn sử dụng proxy "Man-in-the-Middle" để bảo mật, bạn cần hướng dẫn Git tin tưởng proxy cụ thể đó. Bạn sẽ cần tệp .pem hoặc .cer từ đội ngũ quản trị mạng.

  • Xác định vị trí gói hiện tại bằng cách chạy git config --get http.sslcainfo. Nếu trống, hãy tìm trong C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt.
  • Mở tệp đó bằng trình chỉnh sửa văn bản với quyền Administrator.
  • Thêm toàn bộ nội dung văn bản chứng chỉ doanh nghiệp của bạn (bao gồm cả các thẻ BEGINEND) vào cuối tệp.

4. Cài đặt lại với các thiết lập chính xác

Đôi khi cấu hình bị lỗi chồng chéo rất khó gỡ rối. Nếu bạn cài đặt lại Git cho Windows, hãy chú ý kỹ đến màn hình "Choosing HTTPS transport backend". Chọn "Use the native Windows Secure Channel library." Điều này sẽ tích hợp sẵn cấu hình schannel vào bản cài đặt của bạn ngay từ đầu.

Cách kiểm tra kết quả

Đừng lãng phí thời gian clone cả bộ code 2GB chỉ để kiểm tra kết nối. Thay vào đó, hãy sử dụng ls-remote để thăm dò máy chủ:

git ls-remote https://github.com/user/repo.git

Nếu bạn thấy danh sách các mã hash commit, bạn đã thành công. Nếu lỗi vẫn còn, hãy kiểm tra xem thiết lập dự án cục bộ có đang ghi đè cấu hình global hay không bằng cách chạy git config --list --show-origin. Tìm bất kỳ mục http.sslverify nào nằm trong tệp .git/config của bạn.

Đọc thêm

Related Error Notes