Sử Dụng Chứng Chỉ SSL do Bên Thứ Ba Cấp Phát trên ServBay
Khi phát triển hoặc kiểm thử cục bộ mô phỏng môi trường sản xuất, sử dụng chứng chỉ SSL do tổ chức bên thứ ba (CA) tin cậy cấp phát giúp website của bạn được truy cập an toàn qua HTTPS. Điều này đặc biệt quan trọng khi kiểm tra các chức năng phụ thuộc vào HTTPS hoặc muốn đảm bảo môi trường cục bộ giống môi trường sản xuất nhất có thể. Bài viết này hướng dẫn chi tiết cách cấu hình chứng chỉ SSL do bên thứ ba cấp trong môi trường phát triển web cục bộ của ServBay.
WARNING
Lưu ý: Phần lớn chứng chỉ SSL do bên thứ ba (CA) phát hành chỉ hỗ trợ các tên miền chuẩn (ví dụ .com
, .org
, .net
, .vn
...) và không hỗ trợ hậu tố tùy chỉnh không chuẩn (ví dụ .local
, .test
, .demo
...), do những tên miền không chuẩn này không thể xác thực công khai. Nếu tên miền phát triển cục bộ của bạn dùng hậu tố không chuẩn, hãy cân nhắc sử dụng tính năng ServBay User CA hoặc ServBay Public CA để tạo chứng chỉ SSL tin cậy dành riêng cho môi trường địa phương.
Ứng Dụng Thực Tiễn
- Mô phỏng môi trường sản xuất: Tái hiện chính xác cấu hình HTTPS như trên production để kiểm tra hành vi website khi hoạt động với HTTPS.
- Kiểm thử chức năng phụ thuộc HTTPS: Kiểm tra các API hoặc tính năng trình duyệt yêu cầu ngữ cảnh bảo mật (Secure Context), như Service Workers, Web Crypto API, Geolocation, v.v.
- Phát triển API cục bộ: Cấu hình HTTPS cho các API backend chạy tại chỗ, thuận tiện cho frontend gọi qua HTTPS.
Yêu Cầu Chuẩn Bị
Trước khi bắt đầu, hãy đảm bảo đáp ứng các điều kiện sau:
- Đã cài đặt và chạy ServBay trên macOS.
- Có kiến thức cơ bản về sử dụng terminal và dòng lệnh.
- Hệ thống đã cài sẵn công cụ OpenSSL (thường macOS có sẵn).
Bước 1: Đăng Ký Chứng Chỉ SSL của Bên Thứ Ba
Trước hết, bạn cần đăng ký chứng chỉ SSL từ CA uy tín (ví dụ Let's Encrypt, DigiCert, GlobalSign, Sectigo...). Ở phần này sẽ trình bày các bước tạo file yêu cầu ký chứng chỉ (Certificate Signing Request - CSR), là bước quan trọng nhất khi đăng ký chứng chỉ.
Tạo Private Key (Khóa Riêng)
Private key là tệp cực kỳ quan trọng dùng để giải mã lưu lượng đã mã hóa SSL ở phía máy chủ, cần bảo quản cẩn thận và không để lộ ra ngoài. Chạy lệnh OpenSSL sau trong terminal để tạo khóa RSA:
shopenssl genpkey -algorithm RSA -out servbay.demo.key -pkeyopt rsa_keygen_bits:2048
1openssl genpkey
: Lệnh OpenSSL để tạo private key.-algorithm RSA
: Chọn thuật toán RSA cho private key.-out servbay.demo.key
: File xuất ra có tênservbay.demo.key
.-pkeyopt rsa_keygen_bits:2048
: Độ dài key RSA là 2048 bit. Đây là mức tối thiểu được khuyến nghị và đủ an toàn cho hầu hết trường hợp.
Tạo Certificate Signing Request (CSR)
CSR là tệp chứa public key và các thông tin cần thiết để đăng ký chứng chỉ. Bạn cần gửi tệp này cho CA. Hãy tạo CSR dựa vào private key vừa tạo:
shopenssl req -new -key servbay.demo.key -out servbay.demo.csr
1openssl req
: Lệnh OpenSSL để xử lý yêu cầu chứng chỉ.-new
: Tạo mới một CSR.-key servbay.demo.key
: File private key dùng để ký.-out servbay.demo.csr
: File CSR xuất ra tên làservbay.demo.csr
.
Sau khi chạy lệnh, hệ thống sẽ hỏi bạn một số thông tin để điền vào CSR. Hãy tùy chỉnh theo thực tế hoặc đúng yêu cầu của CA. Ví dụ:
Country Name (2 letter code) [AU]:VN # Mã quốc gia, ví dụ VN (Việt Nam), US (Mỹ) State or Province Name (full name) [Some-State]:Hà Nội # Tỉnh/thành phố Locality Name (eg, city) []:Cầu Giấy # Quận/huyện Organization Name (eg, company) [Internet Widgits Pty Ltd]:ServBay # Tên tổ chức/công ty Organizational Unit Name (eg, section) []:Development # Bộ phận (không bắt buộc) Common Name (e.g. server FQDN or YOUR name) []:servbay.demo # **Quan trọng nhất: Điền chính xác FQDN (tên miền) bạn muốn đăng ký.** Email Address []:[email protected] # Email liên hệ (không bắt buộc) Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: # Mật khẩu thử thách (thường để trống) An optional company name []: # Tên công ty (thường để trống)
1
2
3
4
5
6
7
8
9
10
11
12Đặc biệt, trường
Common Name
phải điền chính xác tên miền dự định sử dụng trên ServBay, ví dụservbay.demo
. Nếu cần đăng ký chứng chỉ cho nhiều tên miền (SAN/multi-domain certificate) thì CA sẽ cung cấp cách chỉ định thêm, có thể qua công cụ trực tuyến hoặc bước nhập dữ liệu bổ sung, nhưng thao tác tạo CSR về cơ bản không thay đổi.Gửi CSR và Nhận Chứng Chỉ
Sao chép hoặc upload nội dung tệp
servbay.demo.csr
lên website của CA, thực hiện theo hướng dẫn để xác thực quyền sở hữu tên miền (thường qua bản ghi DNS, file HTTP, hoặc xác thực email). Sau khi xác thực thành công, bạn sẽ nhận lại các tệp chứng chỉ. Thông thường gồm:- Chứng chỉ chính của bạn (ví dụ
servbay.demo.crt
hoặcservbay.demo.pem
). - Một hoặc nhiều file chứng chỉ trung gian (chained certificate, ví dụ
intermediate.crt
,ca-bundle.crt
). - File chứng chỉ root (thường hệ điều hành và trình duyệt đã tích hợp sẵn nên không cần cài riêng).
- Chứng chỉ chính của bạn (ví dụ
Bước 2: Cấu Hình Chứng Chỉ SSL Bên Thứ Ba trên ServBay
Sau khi nhận được các tệp chứng chỉ từ CA, bạn cần nhập và cấu hình chúng trong ServBay để website hoạt động với HTTPS.
ServBay khuyến khích bạn để các tệp chứng chỉ và private key tùy chỉnh vào chung thư mục /Applications/ServBay/ssl/import/tls-certs/
để thuận tiện quản lý.
Di chuyển các tệp private key và chứng chỉ vào thư mục chỉ định
Di chuyển cả private key bạn tự tạo (
servbay.demo.key
), tệp chứng chỉ chính từ CA (servbay.demo.crt
) và tất cả các tệp chứng chỉ trung gian (ví dụintermediate.crt
) vào thư mục nhập của ServBay:shmv servbay.demo.key /Applications/ServBay/ssl/import/tls-certs/ mv servbay.demo.crt /Applications/ServBay/ssl/import/tls-certs/ # Nếu có chứng chỉ trung gian, di chuyển cả mv intermediate.crt /Applications/ServBay/ssl/import/tls-certs/ # Nếu có thêm các chứng chỉ trung gian khác, di chuyển cùng luôn # mv another_intermediate.crt /Applications/ServBay/ssl/import/tls-certs/
1
2
3
4
5
6Hợp nhất chứng chỉ trung gian vào file chứng chỉ chính
Để trình duyệt xác thực được đúng chuỗi chứng chỉ, bạn cần nối dữ liệu của các chứng chỉ trung gian (intermediate) vào cuối file chứng chỉ chính. Thứ tự thông thường là chứng chỉ chính -> tất cả chứng chỉ trung gian -> (root CA - không cần vì OS/browser đã có sẵn). Khi gửi file chứng chỉ trung gian, CA thường kèm luôn hướng dẫn thứ tự cần nối.
Ví dụ nếu chứng chỉ trung gian là
intermediate.crt
:shcat intermediate.crt >> /Applications/ServBay/ssl/import/tls-certs/servbay.demo.crt
1Nếu có nhiều chứng chỉ trung gian, nối lần lượt theo đúng thứ tự CA cung cấp. Ví dụ:
intermediate1.crt
->intermediate2.crt
:shcat intermediate1.crt >> /Applications/ServBay/ssl/import/tls-certs/servbay.demo.crt cat intermediate2.crt >> /Applications/ServBay/ssl/import/tls-certs/servbay.demo.crt
1
2Sau khi hoàn tất, file
servbay.demo.crt
sẽ chứa cả chứng chỉ chính cùng toàn bộ chuỗi chứng chỉ trung gian.Mở bảng điều khiển ServBay
Khởi động ứng dụng ServBay. Tìm biểu tượng ServBay trên thanh menu hoặc Dock, click để mở giao diện quản trị.
Thêm mới hoặc chỉnh sửa website
Trong menu bên trái của panel quản trị ServBay, chọn mục
Website
.- Nếu thêm mới website: nhấn nút
+
ở góc trên bên phải. - Nếu chỉnh sửa website đã có: chọn site rồi bấm biểu tượng sửa (cây bút).
- Nếu thêm mới website: nhấn nút
Cấu hình SSL cho website
Trong phần cấu hình SSL, bạn sẽ thấy nhiều phương thức cấp chứng chỉ. Chọn
Custom
(tùy chỉnh).- Certificate Key File (File khóa riêng): Click nút chọn file, điều hướng đến
/Applications/ServBay/ssl/import/tls-certs/
, chọn file private key vừa nhập, ví dụservbay.demo.key
. - Certificate File (File chứng chỉ): Click nút chọn file, dẫn đến
/Applications/ServBay/ssl/import/tls-certs/
, chọn file chứng chỉ đã hợp nhất chuỗi trung gian, ví dụservbay.demo.crt
.
(Lưu ý: Đường dẫn ảnh chỉ mang tính minh họa; vui lòng cập nhật đúng đường dẫn ảnh ở tài liệu chính thức của ServBay nếu có thay đổi)
- Certificate Key File (File khóa riêng): Click nút chọn file, điều hướng đến
Thiết lập tên miền và thư mục gốc website
Kiểm tra trường
Domain
chứa đúng tên miền bạn xin chứng chỉ (ví dụ:servbay.demo
). Đảm bảo cấu hình đúng trườngDocument Root
, ví dụ/Applications/ServBay/www/servbay.demo
.Lưu và áp dụng cấu hình
Sau khi hoàn tất các bước trên, bấm nút lưu. ServBay sẽ hiện thông báo xác nhận áp dụng thay đổi và khởi động lại web server (Caddy, Nginx hoặc Apache tương ứng). Xác nhận để áp dụng.
Kiểm Tra Cấu Hình
Sau cấu hình, hãy truy cập website đã cài đặt bằng trình duyệt (ví dụ: https://servbay.demo
). Nếu mọi thứ chính xác, bạn sẽ thấy biểu tượng ổ khóa bảo mật ở thanh địa chỉ. Click vào có thể kiểm tra thông tin chi tiết chứng chỉ, xác nhận chứng chỉ do CA bên ngoài cấp và chuỗi chứng chỉ đầy đủ.
Nếu gặp sự cố, hãy kiểm tra các vấn đề sau:
- Tên miền đã khớp với Common Name hoặc SAN trên chứng chỉ?
- Đường dẫn file private key và chứng chỉ đã đúng chưa?
- File chứng chỉ đã chứa đủ chuỗi trung gian và đúng thứ tự chưa?
- Đã lưu và áp dụng cấu hình trong ServBay chưa?
- Hệ điều hành/trình duyệt đã tin tưởng CA cấp phát chứng chỉ chưa (thường CA lớn đã có sẵn trong OS và browser).
Lưu ý
- Tên miền phải khớp: Chứng chỉ nhập vào phải trùng hoàn toàn với tên miền khai báo trên website ServBay (bao gồm subdomain nếu là wildcard certificate).
- Thời hạn chứng chỉ: Chứng chỉ bên thứ ba đều có thời hạn sử dụng. Khi hết hạn, bạn cần gia hạn và cập nhật lại file chứng chỉ trên ServBay như hướng dẫn ở trên.
- Bảo mật private key: File private key (
.key
) rất quan trọng, lưu giữ an toàn, tuyệt đối không để lộ. - Các lựa chọn SSL khác của ServBay: ServBay hỗ trợ nhiều phương thức cấu hình SSL tự động tiện lợi, ví dụ:
- ServBay User CA / Public CA: Sinh chứng chỉ SSL tin cậy cho phát triển cục bộ, hỗ trợ mọi loại hậu tố tên miền.
- ACME (Let's Encrypt): Với tên miền chuẩn, ServBay có thể tự động xin và gia hạn chứng chỉ Let's Encrypt. Phương pháp nhập thủ công chỉ phù hợp khi bạn đã có sẵn chứng chỉ tự mua/tự xin từ nguồn ngoài.
Câu Hỏi Thường Gặp (FAQ)
Q1: Tôi chỉ nhận được file chứng chỉ định dạng .pfx
hoặc .p12
, phải làm sao để dùng trên ServBay?
A1: File .pfx
hoặc .p12
thường chứa cả private key lẫn chuỗi chứng chỉ. Bạn cần dùng OpenSSL để tách riêng thành file private key (.key
) và chứng chỉ (.crt
). Ví dụ:
openssl pkcs12 -in your_certificate.pfx -nocerts -out your_private_key.key -nodes
openssl pkcs12 -in your_certificate.pfx -clcerts -nokeys -out your_certificate.crt
2
Sau khi xuất ra, hãy đảm bảo lấy đầy đủ chuỗi chứng chỉ trung gian mà CA cung cấp và hợp nhất vào file .crt
theo đúng hướng dẫn ở phần trên.
Q2: Đã làm đúng các bước nhưng trình duyệt vẫn báo "kết nối không an toàn"?
A2: Kiểm tra lại các điểm sau:
- Tên miền đúng chưa: Địa chỉ truy cập trên browser đã khớp tên miền trong chứng chỉ?
- Đủ chuỗi chứng chỉ: File
.crt
dùng đã ghép đầy đủ mọi chứng chỉ trung gian và đúng trình tự? Có thể kiểm tra chuỗi bằng công cụ kiểm tra SSL online. - Đã restart ServBay chưa: Đảm bảo cấu hình đã lưu và web server khởi động lại.
- Cache trình duyệt: Xóa cache hoặc thử truy cập chế độ ẩn danh/incognito.
- CA root đã được tin tưởng: Hệ điều hành của bạn có sẵn root CA của đơn vị cấp phát chứng chỉ không.
Tổng Kết
Làm theo hướng dẫn trên, bạn sẽ dễ dàng cấu hình và sử dụng chứng chỉ SSL do bên thứ ba cấp phát trong môi trường phát triển cục bộ ServBay. Nhờ vậy, việc mô phỏng cấu hình HTTPS sản xuất trở nên chính xác, hỗ trợ kiểm thử và phát triển cục bộ hiệu quả. Dù ServBay có nhiều cách thiết lập SSL tiện lợi như ACME, ServBay CA, việc nắm được quy trình nhập chứng chỉ bên ngoài rất hữu ích nếu bạn có nhu cầu đặc biệt hoặc cần chuyển đổi chứng chỉ đã có trước đó.