Возобновление сеанса Tomcat TLS в кластере - PullRequest
3 голосов
/ 10 июля 2019

TLS позволяет возобновить сеанс с помощью идентификаторов сеансов или билетов сеансов. В этом посте показано, как это можно сделать на веб-сервере Apache и Nginx.В частности, Apache имеет директиву SSLSessionTicketKeyFile , которая позволяет зашифровать билет сеанса TLS определенным ключом, а не ключом, выбранным случайным образом при запуске.Это полезно в кластере, где любой участник кластера может открыть тикет, зашифрованный другим участником с помощью общего ключа.

Я не смог найти подобную функцию в документации Tomcat TLS .Тем не менее, я нашел метод под названием setTicketKeys, который, кажется, делает именно то, что я хочу:

public void setTicketKeys(byte[] keys)
Sets the SSL session ticket keys of this context.
Parameters:
keys - The session ticket keys

Я также нашел класс из Facebook Nifty , которыйиспользует эту функцию.

Мой вопрос: мне нужен экземпляр OpenSSLSessionContext для вызова setTicketKeys().Как мне получить этот экземпляр?

Редактировать: Если это можно сделать с помощью конфигурации, тем лучше!

1 Ответ

0 голосов
/ 15 июля 2019

Это фактически задокументировано в документации Tomcat : основные выводы:

  • это невозможно сделать только через конфигурацию, потому что вы должны явно установить флаг для прослушивателя контекста (хотя вам также нужна конфигурация для соединителя, чтобы включить функцию!)
  • есть, конечно, предостережения с прокси и прекращением SSL (например, если Tomcat завершит сеанс SSL, вы не сможете возобновить его)
  • Разъемы APR не поддерживаются (пока?), Только разъемы NIO (2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...