Hướng dẫn chuyển đổi từ PFX (IIS) sang Nginx (X.509)

Để có thể trích xuất private key và certificate từ file PFX (PKCS12) được xuất ra từ máy chủ chạy IIS, bạn cần dùng phần mềm OpenSSL. Các máy chủ chạy Linux đã có sẵn OpenSSL (bạn có thể tải file PFX lên máy Linux để thực hiện), ngược lại nếu chạy Windows, bạn cần cài bộ OpenSSL for Windows lên máy tính.

Sau khi cài đặt Openssl, bạn mở Command Prompt, di chuyển đến thư mục C:\Openssl\bin và chạy lệnh sau:

openssl pkcs12 -in C:\backup.pfx -nocerts -out C:\key.pem

Lưu ý: Bạn cần phải nhập mật khẩu của file backup.pfx và nhập mật khẩu cho file private key.

Sau đó, bạn cần xóa bỏ mật khẩu của private key (nếu bạn không xóa mật khẩu thì mỗi lần bạn restart nginx bạn sẽ phải nhập mật khẩu, rất bất tiện) bằng lệnh sau:

openssl rsa -in C:\key.pem -out C:\private.key

Lưu ý: Bạn cần phải nhập mật khẩu của private key

Để trích xuất certificate, bạn chạy lệnh sau:

openssl pkcs12 -in C:\backup.pfx -clcerts -nokeys -out C:\certificate.crt

Để trích xuất Intermediate CAs, bạn chạy lệnh sau:

openssl pkcs12 -in C:\backup.pfx -out C:\cabundle.crt -nodes -nokeys -cacerts

Đối với nginx, bạn cần phải nối 2 file certificate.crt và cabundle.crt lại với nhau theo thứ tự:

—–BEGIN CERTIFICATE—–Nội dung certificate—–END CERTIFICATE———-BEGIN CERTIFICATE—–Nội dung CA Bundle.—–END CERTIFICATE—–

Trên Linux: Bạn gõ lệnh

cat certificate.crt cabundle.crt > newcertificate.crt

Trên Windows: Bạn chỉ cần dùng Notepad mở file cabundle.crt, sau đó copy nội dung và paste vào phía cuối file certificate.crt và lưu lại với tên newcertificate.crt. Lưu ý: ngay sau đoạn —–END CERTIFICATE—– của certificate bạn cần nhấn Enter xuống dòng rồi mới paste nội dung cabundle.crt vào.

Bạn đã có thể dùng các file private.key, newcertificate.crt này để cấu hình SSL cho nginx.