У меня есть приложение Java, которое отправляет запрос https на мой сервер. Мне пришлось создать хранилище ключей с:
keytool -import -file mycert.cer -alias myalias -keystore keystore.jks
и использовать его как хранилище доверенных сертификатов в моем Java-приложении. Но сертификат на моем сервере действителен в течение одного года. Через год сертификат меняется.
Значит ли это, что я должен создать новое хранилище ключей, когда это произойдет? Или есть более эффективные способы добиться этого?




Да, обычно вам необходимо загружать новый сертификат в хранилище ключей при каждом изменении сертификата.
Сертификат предназначен для установления надежного соединения. Сертификат сообщает вашей программе, что URL-адрес, который она пытается получить, на самом деле является настоящим URL-адресом, а не поддельным.
За безопасность всегда приходится платить. Ежегодная смена сертификата - это незначительные накладные расходы на безопасность, которую он обеспечивает, чтобы избежать атак с подменой DNS.
Чтобы ответить, есть ли лучшие способы сделать это - Да, лучший способ - импортировать сертификат в то же хранилище ключей. Вам не нужно будет менять хранилище ключей.
Вы можете использовать команду ниже, чтобы добиться того же:
keytool -import -file newcert.cer -alias mynewcertificate -keystore keystore.jks
При запросе введите пароль от хранилища ключей.
Спасибо, но я не вижу разницы между командой, которую вы дали, и той, которую использовал я. Вы имели в виду, что я могу просто использовать старое хранилище ключей и просто импортировать новый сертификат вместо того, чтобы удалять предыдущий и создавать новый?
Верно. Команды, которые вы использовали и которые я дал, одинаковы, то есть для добавления сертификата в хранилище ключей. Обратите внимание, что эти команды импортируют сертификат, а не создают хранилище ключей, как вы упомянули. Вам придется повторить тот же процесс с новым файлом сертификата через год.
Нет. Вы можете просто добавить новый сертификат в хранилище ключей. Убедившись, что старый больше не используется, вы можете удалить его из хранилища ключей.
Получить / купить сертификат сервера в ЦС: Где я могу купить действующий сертификат SSL?