BizMaC bizmac.com

Convert SSL ra PFX bằng OpenSSL trên Windows

Hướng dẫn Tên miền & SSL · cập nhật 27/07/2026

Để convert SSL ra PFX bằng OpenSSL trên Windows, bạn cài bản OpenSSL cho Win64, mở Command Prompt tại thư mục bin rồi chạy một lệnh pkcs12 -export duy nhất. Cài đặt mất khoảng 5 phút, lệnh chạy xong trong vài giây.

Việc này gặp khi nhà cung cấp chứng chỉ gửi về bộ file dạng văn bản, còn IIS trên Windows Server lại chỉ nhận một file .pfx. Windows không có sẵn công cụ ghép, nên phải cài OpenSSL về máy làm việc đó.

  1. Tải và cài OpenSSL bản dành cho Windows.
  2. Chép file chứng chỉ và file khoá riêng vào thư mục bin của OpenSSL.
  3. Mở Command Prompt đúng tại thư mục đó.
  4. Chạy lệnh ghép và đặt mật khẩu cho file kết quả.
Đã kiểm trên Windows Server 2019 với OpenSSL 3.x bản Win64. Bản Light gọn hơn và đủ dùng cho việc ghép file, không cần bản Full.

Vì sao Windows cần file PFX thay vì bộ file văn bản

Kho chứng chỉ của Windows lưu chứng chỉ và khoá riêng thành một cặp gắn liền nhau, không nhận hai file rời. Định dạng PFX theo chuẩn PKCS#12 đóng gói cả hai vào một file nhị phân có mật khẩu bảo vệ, đúng cấu trúc mà kho chứng chỉ chờ đợi.

Bộ file mà nhà cung cấp gửi về thường là dạng PEM, tức văn bản thuần bắt đầu bằng dòng -----BEGIN CERTIFICATE-----. Đó là định dạng của thế giới Linux, nơi Apache và Nginx đọc từng file riêng qua đường dẫn khai trong cấu hình. Hai hệ chọn hai cách khác nhau, nên mới sinh ra bước chuyển đổi này.

Cài OpenSSL cho Windows và chọn đúng bản

OpenSSL không có bản chính thức cho Windows từ nhóm phát triển, nên phải dùng bản dựng sẵn của bên thứ ba. Bản phổ biến nhất là Win32/Win64 OpenSSL của Shining Light Productions, tải từ trang slproweb.com. Chọn bản Win64 nếu máy chạy Windows 64 bit, đúng với hầu hết máy đời sau 2015.

Bản càiGồm gìNên chọn khi
Win64 OpenSSL LightFile thực thi và thư viện chạyChỉ cần chạy lệnh chuyển đổi file
Win64 OpenSSL (Full)Thêm file header và thư viện để lập trìnhCần biên dịch phần mềm gọi tới OpenSSL
Win32Bản 32 bitMáy chạy Windows 32 bit đời cũ

Trong lúc cài, trình cài hỏi đặt thư viện DLL ở đâu. Chọn mục đặt trong thư mục cài của OpenSSL, đừng chọn thư mục hệ thống Windows, vì ghi đè DLL hệ thống có thể làm phần mềm khác đang dùng bản OpenSSL riêng bị lỗi.

Các bước convert SSL ra PFX bằng OpenSSL trên Windows

Bốn bước dưới đây làm trên máy Windows đã cài OpenSSL. Bạn cần hai file trong tay: file chứng chỉ nhà cung cấp gửi về và file khoá riêng sinh ra lúc tạo yêu cầu ký. Thiếu file khoá riêng thì không ghép được, phải xin cấp lại chứng chỉ.

1. Chép hai file vào thư mục bin

Mở thư mục cài OpenSSL, thường là C:\Program Files\OpenSSL-Win64\bin. Chép file domain.crt và domain.key vào đó. Để chung một chỗ với chương trình thì lệnh viết ngắn, không phải gõ đường dẫn dài.

Cửa sổ Command Prompt đang mở tại thư mục bin của OpenSSL trên Windows
Command Prompt mở đúng tại thư mục bin, dấu nhắc hiện đường dẫn OpenSSL-Win64.

2. Mở Command Prompt tại đúng thư mục

Trong cửa sổ thư mục bin, bấm vào thanh địa chỉ, gõ đè chữ cmd rồi nhấn Enter. Command Prompt mở ra với thư mục hiện hành đã đúng chỗ.

Cách này nhanh hơn mở CMD rồi gõ lệnh cd, và tránh được lỗi hay gặp là gõ thiếu dấu ngoặc kép quanh đường dẫn có khoảng trắng trong chữ "Program Files".

3. Chạy lệnh ghép file

Gõ nguyên dòng dưới đây, thay domain bằng tên file thật của bạn:

openssl pkcs12 -export -out domain.pfx -inkey domain.key -in domain.crt

Bốn tham số trong lệnh có nghĩa như sau. pkcs12 -export nói rằng bạn muốn tạo file theo chuẩn PKCS#12. -out là tên file kết quả. -inkey là file khoá riêng. -in là file chứng chỉ.

Cách gọi cũ là chạy openssl.exe trước để vào chế độ dòng lệnh riêng của chương trình rồi mới gõ pkcs12 -export .... Hai cách cho cùng kết quả, gõ một dòng như trên đỡ một bước.

4. Đặt mật khẩu cho file PFX

Chương trình hỏi Enter Export Password rồi hỏi lại lần nữa để xác nhận. Gõ mật khẩu, màn hình không hiện ký tự nào, đó là cách OpenSSL luôn nhận mật khẩu. Nhấn Enter hai lần liên tiếp nếu muốn để trống.

Ghi lại mật khẩu này ngay. IIS sẽ hỏi đúng chuỗi đó lúc nhập chứng chỉ, và không có cách nào lấy lại từ file. Quên là phải chạy lại lệnh trên từ đầu.

Cách kiểm tra file PFX vừa tạo có dùng được không

File PFX đúng sẽ mở lại được bằng chính OpenSSL và liệt kê ra đủ chứng chỉ lẫn khoá riêng bên trong. Chạy lệnh sau, nhập mật khẩu vừa đặt:

openssl pkcs12 -info -in domain.pfx -nodes

Kết quả in ra phải có cả khối -----BEGIN PRIVATE KEY----- lẫn khối -----BEGIN CERTIFICATE-----. Thiếu khối khoá riêng nghĩa là lệnh ghép đã chạy nhưng file .key rỗng hoặc sai, phải làm lại.

Kiểm nhanh hơn thì bấm đúp vào file .pfx ngay trên Windows. Trình nhập chứng chỉ mở ra và hỏi mật khẩu, đó đã là dấu hiệu file đọc được. Sau khi có file dùng được, làm tiếp theo hướng dẫn cài đặt SSL trên IIS.

Xử lý các lỗi thường gặp khi chạy OpenSSL trên Windows

Bốn thông báo dưới đây chiếm phần lớn ca chuyển đổi thất bại. OpenSSL in lỗi bằng tiếng Anh khá ngắn, nhìn dòng đầu là đủ để biết rơi vào ca nào.

openssl is not recognized as an internal or external command. Command Prompt đang đứng ở thư mục khác. Kiểm dấu nhắc có phải đường dẫn tới bin hay không, hoặc gõ đủ openssl.exe kèm đường dẫn trong dấu ngoặc kép.

unable to load private key. File .key không phải khoá riêng, hoặc là khoá đã mã hoá bằng mật khẩu mà bạn chưa khai. Mở file bằng Notepad xem dòng đầu: đúng thì bắt đầu bằng -----BEGIN PRIVATE KEY----- hoặc -----BEGIN RSA PRIVATE KEY-----.

No certificate matches private key. Chứng chỉ và khoá riêng không cùng một cặp, thường do lấy nhầm khoá của lần tạo yêu cầu ký trước đó. Đối chiếu bằng cách so hai chuỗi băm, nếu khác nhau thì phải tìm đúng file khoá của lần cấp này.

openssl x509 -noout -modulus -in domain.crt | openssl md5
openssl rsa -noout -modulus -in domain.key | openssl md5

Trình duyệt vẫn báo chứng chỉ không tin cậy sau khi cài. File PFX thiếu chứng chỉ trung gian. Xin file CA bundle từ nơi cấp rồi ghép thêm bằng tham số -certfile:

openssl pkcs12 -export -out domain.pfx -inkey domain.key -in domain.crt -certfile ca-bundle.crt

Việc nên làm sau khi có file PFX

Chép file .pfx và mật khẩu vào nơi lưu trữ an toàn của bạn, rồi xoá file .key khỏi thư mục bin. Thư mục cài phần mềm không phải chỗ để khoá riêng nằm lâu dài, ai có quyền đọc máy đó là có luôn khoá.

Ghi lại ngày hết hạn của chứng chỉ vào lịch, đặt nhắc trước 30 ngày. Chứng chỉ SSL thương mại hiện chỉ còn thời hạn tối đa 397 ngày, nên năm nào cũng phải làm lại quy trình này. Chứng chỉ BizMaC cấp qua đối tác GoGetSSL đều gửi kèm CA bundle trong bộ file, giữ lại file đó thì lần ghép sau không phải đi xin.

Hướng dẫn này có giúp được Anh/Chị không?

Bài khác trong Tên miền & SSL

Xem cả 22 bài
Chuyển tên miền quốc tế sang nhà đăng ký khác Chuyển tên miền quốc tế sang nhà đăng ký khác mất 5–7 ngày. Bài này đi từ kiểm điều kiện, lấy mã auth code, tới những thứ phải kiểm lại sau khi chuyển. 7 phút đọc 64 lượt xem Cập nhật 16/09/2026 Chuộc lại tên miền quốc tế đã quá hạn Tên miền quốc tế quá hạn còn cứu được trong một cửa sổ 30 ngày. Bài này chỉ cách xác định tên đang ở chặng nào, gửi yêu cầu chuộc và dựng lại DNS. 6 phút đọc 97 lượt xem Cập nhật 16/09/2026 Đổi thông tin chủ thể tên miền quốc tế Đổi tên chủ thể hoặc email chủ thể tên miền có quy trình xác nhận riêng và kéo theo khoá chuyển 60 ngày. Bài này chỉ cách chuẩn bị và thứ tự nên làm. 6 phút đọc 60 lượt xem Cập nhật 16/09/2026 Kiểm tra thông tin tên miền bằng WHOIS WHOIS cho tra thông tin đăng ký của một tên miền như hạn, nhà đăng ký và nameserver. Bài này chỉ cách tra, đọc kết quả và vì sao vài thông tin bị ẩn. 9 phút đọc 56 lượt xem Cập nhật 16/09/2026 Quản lý DNS cho tên miền: thêm, sửa, xoá bản ghi Cách thêm, sửa và xoá bản ghi A, CNAME, MX, TXT trong vùng DNS của tên miền. Kèm bảng nghĩa từng loại, cách chọn TTL và lệnh kiểm lại sau khi lưu. 11 phút đọc 95 lượt xem Cập nhật 23/08/2026 Convert chứng chỉ SSL sang PFX cho máy chủ IIS File PFX cần chứng chỉ, khoá riêng và chuỗi trung gian. Cách gom đủ ba file rồi ghép sang PFX bằng công cụ trên trình duyệt, kèm cách kiểm tra file kết quả. 7 phút đọc 308 lượt xem Cập nhật 21/08/2026