Программно контролировать, что представляет сертификат SSL Tomcat - PullRequest
2 голосов
/ 09 ноября 2011

Можно ли программно управлять сертификатом, который Tomcat представляет во время согласования SSL?У меня есть сертификат в формате, отличном от JKS, и в настоящее время я экспортирую его в PKCS # 12, чтобы он был загружен Tomcat.

Я хотел бы иметь возможность обновить представленный сертификат, пока Tomcatработает, но это потребует повторного экспорта и перезапуска, чего я надеюсь избежать.

Кто-нибудь знает, есть ли какие-либо программные связи в Tomcat, которые я мог бы использовать для загрузки / переопределения / обновления?пользовательский сертификат?

Спасибо.

1 Ответ

3 голосов
/ 14 марта 2012

Я думаю, что горячая замена сертификата невозможна с полным 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);

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

...