Программный контроль того, что представляет собой сертификат SSL Tomcat

#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);
  

Я сам этого не пробовал, но это должно сработать.