Windows/Hyper-V

Hướng Dẫn Kiểm Tra Kết Nối HTTPS Từ Trong Docker n8n Khi Bị Lỗi SSL

Dưới đây là bài viết hướng dẫn kiểm tra HTTPS bên trong Docker container n8n khi gặp lỗi SSL, sử dụng cách tạm thời bỏ kiểm tra SSL để test kết nối, rất hữu ích khi bạn đang debug lỗi như:

SSL certificate problem: unable to get local issuer certificate


✅ Hướng Dẫn Kiểm Tra Kết Nối HTTPS Từ Trong Docker n8n Khi Bị Lỗi SSL

Khi sử dụng n8n trong Docker để kết nối đến một website WordPress sử dụng Cloudflare Origin CA, bạn có thể gặp lỗi:

SSL certificate problem: unable to get local issuer certificate

Điều này xảy ra vì container Docker không tin tưởng chứng chỉ CA gốc, dù máy chủ (host) đã tin. Trường hợp phổ biến nhất là khi bạn dùng chứng chỉ SSL cấp bởi Cloudflare Origin CA, vốn không thuộc chuỗi CA công cộng mặc định trong Alpine Linux (hệ điều hành của image n8n).


🎯 Mục Tiêu

Xác minh xem container Docker (n8n) có thể kết nối được tới WordPress qua HTTPS hay không, bỏ qua việc kiểm tra chứng chỉ SSL, chỉ để kiểm tra phản hồi máy chủ.


🛠 Cách Làm

Bước 1: Vào container n8n

docker exec -it n8n_120 sh

Bước 2: Chạy đoạn Node.js sau (bỏ kiểm tra chứng chỉ SSL)

node -e "
const https = require('https');
const options = {
  hostname: 'noidung.movads.vn',
  rejectUnauthorized: false
};
https.get(options, res => {
  console.log('status:', res.statusCode);
}).on('error', e => console.error(e));
"

✅ Kết Quả Mong Đợi

  • Nếu bạn thấy dòng:
    status: 200
    

    → Website hoạt động, kết nối HTTPS từ container thành công (chỉ là chứng chỉ chưa được xác thực).

  • Nếu vẫn lỗi ENOTFOUND, ECONNREFUSED → có thể container không truy cập được Internet, hoặc sai hostname.

⚠️ Lưu Ý Quan Trọng

  • rejectUnauthorized: false chỉ nên dùng để kiểm tra kết nối, tuyệt đối không được dùng trong môi trường sản xuất (production)bỏ qua bảo mật SSL.
  • Nếu xác nhận kết nối được, bạn nên:
    • Cài đặt chứng chỉ CA gốc trong container
    • Hoặc dùng Let’s Encrypt thay vì Origin CA

🔚 Tổng Kết

Đoạn lệnh Node.js đơn giản trên giúp bạn:

  • Kiểm tra kết nối HTTPS từ bên trong Docker container
  • Không phụ thuộc vào curl, wget, openssl
  • Bỏ qua bước xác thực SSL để xác minh nhanh kết nối mạng

Nếu bạn muốn fix triệt để lỗi SSL và không cần bỏ rejectUnauthorized, hãy build lại Docker image có tích hợp CA gốc Cloudflare — mình có thể hướng dẫn bạn nếu cần.

Leave a Reply

Your email address will not be published. Required fields are marked *