Преобразовать сертификат .cer в .jks

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

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

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

Ответ 1

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

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

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

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

Ответ 2

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

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

Ответ 3

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

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

Ответ 4

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

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