[Hướng dẫn DevOps] Cấu hình chứng chỉ TLS: Tạo, xác thực và cài đặt Public Key Certificate cho API/Web Server
Trong thời đại API chạy xuyên lục địa, mã hóa lưu lượng và xác thực server bằng certificate đáng tin cậy là điều bắt buộc. Dù là bảo mật cho ứng dụng nội bộ hay công khai, bạn đều cần hiểu rõ quy trình thiết lập chứng chỉ TLS.
🎯 Khi nào cần chứng chỉ được CA ký?
⚙️ Quy trình chuẩn để tạo chứng chỉ Public Key TLS
✅ Bước 1: Tạo Private Key
openssl genrsa -aes192 -out MYPRIVATEKEY.key 4096
🔐 Sinh khóa RSA 4096-bit, mã hóa bằng AES-192 và bảo vệ bằng passphrase.
✅ Bước 2: Tạo Certificate Signing Request (CSR)
openssl req -new -key MYPRIVATEKEY.key -out MYCSR.csr
📝 Nhập thông tin định danh (DN) như:
✅ Bước 3 (Tùy chọn): Kiểm tra nội dung CSR
cat MYCSR.csr
💡 Bạn có thể dùng Digicert CSR Checker để xác minh tính hợp lệ của CSR.
✅ Bước 4: Gửi CSR để đăng ký chứng chỉ (Enrollment)
🔐 Cách CA phát hành chứng chỉ:
✅ Bước 5: Cài đặt chứng chỉ vào Web Server Apache
Chỉnh cấu hình trong file httpd.conf hoặc ssl.conf:
SSLCertificateFile /etc/ssl/certs/public.crt
SSLCertificateKeyFile /etc/ssl/private/private.key
SSLCertificateChainFile /etc/ssl/certs/bundle.crt
💡 Nếu có intermediate CA, bạn cần cung cấp file .crt bundle theo chuỗi: Server Cert → Intermediate → Root
🧠 Một số lưu ý quan trọng:
💡 Dành cho DevOps/Automation Engineer: Bạn có thể tích hợp quá trình cấp phát chứng chỉ này vào playbook Ansible, CI/CD pipeline, hoặc API call đến CA nội bộ để tự động hóa toàn bộ chu trình chứng thực!
👉 Tiếp theo: Hướng dẫn cấu hình HTTPS với TLS 1.3 trên Apache + kiểm tra bảo mật SSL với SSLLabs.
Bạn có đang dùng certificate đúng cách trên API/Web Server của mình chưa? Hãy kiểm tra lại ngay hôm nay!
Trong thời đại API chạy xuyên lục địa, mã hóa lưu lượng và xác thực server bằng certificate đáng tin cậy là điều bắt buộc. Dù là bảo mật cho ứng dụng nội bộ hay công khai, bạn đều cần hiểu rõ quy trình thiết lập chứng chỉ TLS.
🎯 Khi nào cần chứng chỉ được CA ký?
- Nếu chỉ cần mã hóa (không cần xác thực danh tính), nhiều hệ thống sẽ tự tạo chứng chỉ tự ký (self-signed).
- Nhưng nếu bạn cần xác thực server với client (đặc biệt là browser), chứng chỉ phải được CA tin cậy ký tên.
- Với hệ thống nội bộ → dùng Internal CA
- Với website công khai → dùng Public CA được browser tin cậy
⚙️ Quy trình chuẩn để tạo chứng chỉ Public Key TLS
✅ Bước 1: Tạo Private Key
openssl genrsa -aes192 -out MYPRIVATEKEY.key 4096
🔐 Sinh khóa RSA 4096-bit, mã hóa bằng AES-192 và bảo vệ bằng passphrase.
✅ Bước 2: Tạo Certificate Signing Request (CSR)
openssl req -new -key MYPRIVATEKEY.key -out MYCSR.csr
📝 Nhập thông tin định danh (DN) như:
- Common Name (CN) = www.tenmien.com
- Organization = VnPro
- Email, địa chỉ, bộ phận...
✅ Bước 3 (Tùy chọn): Kiểm tra nội dung CSR
cat MYCSR.csr
💡 Bạn có thể dùng Digicert CSR Checker để xác minh tính hợp lệ của CSR.
✅ Bước 4: Gửi CSR để đăng ký chứng chỉ (Enrollment)
🔐 Cách CA phát hành chứng chỉ:
- Qua email
- Qua trang web tải file .crt
- Qua SCEP (dùng cho thiết bị mạng tự động yêu cầu chứng chỉ)
- CSR
- Tên miền (CN)
- Tên công ty
- Thời gian hiệu lực (VD: 1 năm)
✅ Bước 5: Cài đặt chứng chỉ vào Web Server Apache
Chỉnh cấu hình trong file httpd.conf hoặc ssl.conf:
SSLCertificateFile /etc/ssl/certs/public.crt
SSLCertificateKeyFile /etc/ssl/private/private.key
SSLCertificateChainFile /etc/ssl/certs/bundle.crt
💡 Nếu có intermediate CA, bạn cần cung cấp file .crt bundle theo chuỗi: Server Cert → Intermediate → Root
🧠 Một số lưu ý quan trọng:
- Không chia sẻ file .key (Private Key) cho bất kỳ ai.
- Bundle chứng chỉ đúng thứ tự CA để tránh lỗi “Untrusted Certificate” trên browser.
- Hạn chế dùng self-signed cert trừ khi là test hoặc môi trường dev.
- Luôn backup file .key và .crt.
💡 Dành cho DevOps/Automation Engineer: Bạn có thể tích hợp quá trình cấp phát chứng chỉ này vào playbook Ansible, CI/CD pipeline, hoặc API call đến CA nội bộ để tự động hóa toàn bộ chu trình chứng thực!
👉 Tiếp theo: Hướng dẫn cấu hình HTTPS với TLS 1.3 trên Apache + kiểm tra bảo mật SSL với SSLLabs.
Bạn có đang dùng certificate đúng cách trên API/Web Server của mình chưa? Hãy kiểm tra lại ngay hôm nay!