Java keystore là tập tin lưu trữ certificate gồm một cặp public key và private key dùng cho việc xác nhận trong các giao thức SSL hoặc HTTPS. Còn Java keytool là một công cụ của Java dùng để generate, thao tác với certificate được quản lý bởi tập tin Java keystore. Trong bài viết này, mình sẽ hướng dẫn các bạn cách sử dụng keytool để generate một tập tin keystore trong Java các bạn nhé!
Để sử dụng keytool generate một keystore, các bạn có thể sử dụng câu lệnh với cấu trúc cơ bản như sau:
1 |
keytool -genkeypair -alias <alias> -keyalg <keyalg> -keystore <keystore> -keypass <keypass> -storepass <storepass> |
Trong đó:
- keytool: là công cụ Java keytool, nếu các bạn đã cài đặt biến môi trường trỏ đến thư mục bin của Java thì các bạn có thể thực thi câu lệnh keytool này ở bất cứ đâu trong máy các bạn.
- -genkeypair: tham số để generate mới một cặp public và private key được lưu trữ trong tập tin keystore
- -alias <alias>: tên alias dùng để identity keystore.
- -keyalg <keyalg>: thuật toán sử dụng để generate keystore. Các bạn có thể sử dụng các thuật toán sau:
- DiffieHellman (DH): dành cho thuật toán Diffie-Hellman keyAgreement
- DSA: dành cho thuật toán Digital Signature
- RSA: dành cho thuật toán RSA (Signature/Cipher)
- EC: dành cho thuật toán Elliptic Curve
Các bạn tìm hiểu thêm các thuật toán này trên mạng nhé!
- -keystore <keystore>: đường dẫn tới tập tin keystore sẽ được generate.
- -keypass <keypass>: mật khẩu sử dụng để bảo vệ private key của tập tin keystore. Tham số này là optional nhưng nếu các bạn không khai báo thì khi execute câu lệnh keytool thì nó sẽ yêu cầu các bạn nhập password này sau khi trả lời một số câu hỏi. Mật khẩu này ít nhất là 6 ký tự!
- -storepass <storepass>: được sử dụng để bảo đảm tính toàn vẹn của một tập tin keystore. Tham số này cũng là optional, và cũng như tham số -keypass nếu các bạn không khai báo thì khi execute câu lệnh keytool, nó cũng sẽ yêu cầu các bạn nhập password. Mật khẩu này cũng yêu cầu phải ít nhất là 6 ký tự nhé các bạn!
Giả sử giờ mình sử dụng câu lệnh sau:
1 |
keytool -genkeypair -alias huongdanjava -keyalg RSA -keystore /Users/Khanh/Documents/huongdanjava.jks |
với RSA là thuật toán để generate một cặp public và private key.
Kết quả:
Các bạn cần nhập password để đảm bảo tính toàn vẹn của tập tin Keystore (option -storepass) rồi nhấn Enter.
Nhập lại password rồi nhấn Enter tiếp:
Trả lời một số câu hỏi rồi xác nhận. Nếu đúng hết thì nhập yes nhé các bạn!
Đến đây, các bạn cần nhập password cho private key trong tập tin keystore (option -keypass). Nhấn enter nếu các bạn muốn password này giống như password mà chúng ta đã nhập ở trên nhé!
Sau khi generate xong, các bạn có thể vào thư mục được truyền trong câu lệnh (của mình là /Users/Khanh/Documents), nhập câu lệnh sau:
1 |
keytool -list -keystore <keystore> -storepass <storepass> |
để kiểm tra kết quả. Ý nghĩa của các option như mình đã nói ở trên nhé các bạn!
Của mình kết quả như sau: