2015-05-20 11 views
11

Мне нужно преобразовать файл .cer в файл .jks. Я видел несколько вопросов об этом, но не видел решения для того, что мне нужно.Конвертировать сертификат .jks в .jks

Мне не нужен он, чтобы добавить его в мои локальные сертификаты, но в качестве файла для загрузки на сервер. Мне также нужно сделать это только один раз, а не программно. Есть эта тема Converting .cer to .jks using java, и автор говорит, что сделал это успешно, но я не мог комментировать его последний ответ, поскольку у меня недостаточно репутации, и я не мог отправить ему личное сообщение и спросить его.

Так что если кто-нибудь знает простой способ сделать это, я буду рад услышать.

ответ

6

Для того, чтобы убедиться, что это действительно «конверсия» вам нужно, обратите внимание, что файлы jks являются хранилищами ключей, файловым форматом, используемым для хранения нескольких сертификатов, и позволяют программно их извлекать с использованием API безопасности Java, это не взаимно однозначное преобразование между эквивалентными форматами.

Итак, если вы просто хотите импортировать этот сертификат в новое хранилище данных ad-hoc, вы можете сделать это с помощью Keystore Explorer, графического инструмента. Вы сможете изменить хранилище ключей и содержащиеся в нем сертификаты, как это было бы сделано с утилитами терминала java, такими как keytool (но более доступным способом).

26

keytool поставляется с установкой JDK (в папке bin):

keytool -importcert -file "your.cer" -keystore your.jks -alias "<anything>" 

Это позволит создать новое хранилище ключей и добавить только сертификат на него.

Таким образом, вы не можете конвертировать сертификата в хранилище ключей: вы добавить сертификата в хранилище ключей.

1

Экспорт сертификата из хранилища ключей:

keytool -export -alias mydomain -file mydomain.crt -keystore keystore.jks 
0

Используйте следующее поможет

Keytool -import -v -trustcacerts -alias keyAlias ​​ -file server.cer -keystore cacerts.jks -keypass changeit