Convert JKS to BKS using keytool

English 简体中文 繁体中文 ภาษาไทย Tiếng Việt
Summary

Converting a JKS keystore to the BouncyCastle BKS format with Java's keytool requires specific steps due to BKS not being a native Java SE keystore type. Developers must first download the BouncyCastle provider JAR. The keytool command then needs to include the -provider option, specifying org.bouncycastle.jce.provider.BouncyCastleProvider, and the -providerpath option, pointing to the downloaded BouncyCastle JAR file. This ensures the JVM can locate and utilize the third-party provider for the conversion process. This approach is generally applicable for converting between various keystore formats using external providers.

Có rất nhiều câu hỏi(câu hỏi 1, câu hỏi 2) trên Stackoverflow về cách chuyển đổi kho khóa JKS sang kho khóa BKS(một định dạng kho khóa được cung cấp bởi BouncyCastle) bằng Java keytool. 

Lý do tại sao việc chuyển đổi này có rất nhiều câu hỏi là vì BKS không phải là định dạng kho khóa được hỗ trợ bởi Java SE, nó là một định dạng kho khóa của bên thứ ba. Để chuyển đổi JSK sang BKS, nhà cung cấp BKS phải được tải xuống trước. Và một vài tùy chọn khác cần được thêm vào khi chạy lệnh keytool.

Lệnh điển hình để chuyển đổi kho khóa JKS sang kho khóa BKS sẽ trông như bên dưới:

keytool -importkeystore -srckeystore testkeys -srcstoretype JKS -srcstorepass passphrase -destkeystore testkeys.bks -deststoretype BKS -deststorepass password -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath [PARENT_DIRECTORY_PATH]\bouncycastle\bcprov-jdk15on-152.jar

Hai tùy chọn quan trọng là -provider-providerpath. Tùy chọn -provider cho JVM biết dịch vụ kho khóa BKS được đăng ký ở đâu và -providerpath cho JVM biết vị trí của nhà cung cấp.

Với điều này, sẽ không có vấn đề gì để chuyển đổi kho khóa JKS sang kho khóa BKS. Một ví dụ được hiển thị bên dưới.

Trước khi chuyển đổi, kho khóa JKS chứa các mục bên dưới:

Sau khi chuyển đổi, kho khóa BKS chứa các mục bên dưới:

Lệnh sẽ tương tự nếu bạn muốn chuyển đổi giữa các định dạng kho khóa khác nhau.

JAVA SECURITY JKS KEYTOOL BKS

  RELATED

  COMMENTS

3
Anonymous
Jun 2, 2017 at 6:37 am

Problem importing entry for alias capistore: java.security.KeyStoreException: java.io.IOException: Error initialising store of key store: java.security.InvalidKeyException: Illegal key size.

 

I keep getting the above error, any help would be appriciated 

Ke Pi
Jun 3, 2017 at 4:00 am

It may relate to the limited policy strength files located in jre\lib\security. Can you try to put the unlimited strength policy files there?

Anonymous
Feb 4, 2024 at 5:10 am

There are any ways to convert it using java methods? For example add dependency "implementation 'org.bouncycastle:bcprov-jdk18on:1.77'" and use it for transformation?