#api #tomcat #ssl #certificate
#API #tomcat #ssl #сертификат
Вопрос:
Возможно ли программно управлять сертификатом, который Tomcat предоставляет во время согласования SSL? У меня есть сертификат в формате, отличном от JKS, и в настоящее время я экспортирую его в PKCS # 12, чтобы загрузить его Tomcat.
Я хотел бы иметь возможность обновлять сертификат, представленный во время работы Tomcat, но для этого потребуется реэкспорт и перезапуск, чего я надеюсь избежать.
Кто-нибудь знает, есть ли какие-либо программные привязки к Tomcat, которые я мог бы использовать для загрузки / переопределения / обновления пользовательского сертификата?
Спасибо.
Ответ №1:
Я думаю, что горячая замена сертификата невозможна с полным Tomcat, это не позволит коду вашего веб-приложения получать доступ к конфигурации контейнера через API. Но вы можете это сделать, если запустите Tomcat в встроенном режиме. Вам нужно удалить старый HTTP-соединитель из контейнера, создать и инициализировать новый соединитель с другим сертификатом и добавить его в контейнер.
В Tomcat 6 это выглядело бы следующим образом:
// your startup code
Embedded embedded = new Embedded();
// setup context, host, executor etc.
// ...
// your reload certificate API call
Connector con = createAndInitMyNewConnector();
embedded.removeConnector(oldCon);
embedded.addConnector(con);
Я сам этого не пробовал, но это должно сработать.