Это пост-памятка по созданию приватных и публичных ключей, сертификатов и подписей, а так же по работе с java keystore.
Предположим, что есть некий soap service который использует wsse (WS-Security, wss) для безопасности. Для того, чтобы в Java выполнять шифрование и подписи необходимо подготовить Java Key Store (JKS) файл.
Создание и импорт
Для начала создаем приватный ключ.
Далее нужен самоподписанный сертифика. По сути это публичный ключ.
Теперь можно создать авторизационный сертификат. Обычно его отправляют в сервис и в ответ получают публичный сертификат сервиса.
Теперь, когда у нас есть key.pem нужно поменять его формат
И в конечном итоге создать keystore с заполненными ключами.
Стоит отметить, что keystore создаст alias и password равные importkey если они не указаны.
Экпорт
Что делать, если спустя неокторое время оригинаьные ключи используемые в java keystore потерялись и надо их извлечь?
Для начала достанем публичный сертификат с помощью keytool.
Теперь публичный серт. в файле exported-pem.crt.
Чтобы достать приватный ключ придется воспользоваться утилитой написанной на java.
В результате в файле exported-pkcs8.key лежит приватный ключ.