Hướng dẫn chuyển đổi từ Java Keystore (Tomcat/JBoss) sang X.509 (Nginx)

Để có thể trích xuất private key và certificate từ file Java Keystore, bạn cần phải cài đặt các phần mềm JDK và Openssl lên máy tính.

  1. Chuyển đổi từ PKCS7 sang PKCS12:

Sau khi cài đặt xong JDK, bạn mở một Command prompt và chuyển đến thư mục JDK\bin. Chạy lệnh sau:

​keytool -importkeystore -srckeystore C:\keystore.jks -destkeystore C:\backup.pfx -deststoretype PKCS12

Lưu ý: bạn cần phải nhập mật khẩu của Keystore và file PFX.

  1. Trích xuất private key và certificate từ file PFX:

Để có thể trích xuất private key và certificate từ file PFX (PKCS12), 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:Opensslbin 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 Apache 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.