Как может веб-приложения в Tomcat Apache использовать аутентификацию клиентского сертификата SSL/TLS в качестве клиентов?

sshd является ssh сервером deamon. Таким образом, если Вы хотите соединиться с машиной через ssh, необходимо установить ssh сервер на целевой машине, например, использование

sudo apt-get install openssh-server

Команда ssh - то, что Вы используете для фактического соединения с машиной, выполняющей ssh сервер. Вам нужен ssh, установленный на машине, от которой Вы хотите к ssh.

sudo apt-get install ssh

Но ssh будет, вероятно, уже установлен при использовании какой-либо достойной версии Ubuntu.


Теперь о перезапуске. Что Вы хотите перезапустить? Если Вы хотите перезапустить ssh сервер на другой машине (например, если Вы изменили конфигурацию), использование

sudo /etc/init.d/ssh restart

Да это называют ssh, хотя процесс называют sshd, который мог бы сбивать с толку.

3
задан 12 January 2012 в 21:55
1 ответ

В конечном итоге сертификат будет отправлен с использованием механизма из X509KeyManager , используемого в SSLContext , используемом SSLSocket / SSLEngine , используемый клиентом.

По умолчанию SSLContext инициализирует свой диспетчер ключей с помощью системных свойств javax.net.ssl.keyStore * . (См. этот ответ SO , чтобы узнать о разнице между «хранилищем ключей» и «хранилищем доверия»: оба используют формат API / хранилища «хранилище ключей».)

Самый простой - настроить JVM под управлением Tomcat, в котором работает ваш клиент / веб-приложение, с этими свойствами javax.net.ssl.keyStore * . По умолчанию SSLContext подберет его, и он ' s используется по умолчанию для соединений HTTPS (даже сторонние библиотеки HTTPS будут использовать его).

Если вам нужно что-то более конкретное для определенных запросов, вам может потребоваться изменить код веб-приложения, чтобы использовать определенное хранилище ключей (или, по крайней мере, выберите конкретный сертификат) в заданном SSLContext для этого запроса.

Как вы настраиваете JVM, на которой запущен Tomcat, будет зависеть от запускаемого сценария. Если под Windows этот вопрос должен помочь, в противном случае я подозреваю, что где-то в catalina.sh есть строка, где вы можете установить свойства системы.

Если вы настроите глобальный javax.net.ssl.keyStore * для этого, это повлияет на всю виртуальную машину, включая соединители. Чтобы ваши соединители Tomcat не использовали это хранилище ключей, убедитесь, что В конфигурации указаны собственные атрибуты keyStore * (чтобы не использовать значения из системных свойств).

Если в вашем хранилище ключей есть несколько сертификатов (с закрытым ключом), выбор должно выполняться автоматически в соответствии со списком CA, отправленным сервером в сообщении CertificateRequest . По умолчанию диспетчер ключей выбирает первый сертификат, который он найдет в настроенном хранилище ключей, который выдается ЦС из этого списка (или промежуточным ЦС). Если вам нужно что-то более конкретное (в частности, если в вашем хранилище ключей есть несколько допустимых кандидатов), вам нужно будет реализовать собственный X509KeyManager , поместить логику в chooseClientAlias ​​, инициализировать SSLContext с ним, и сделать так, чтобы любой API, выполняющий эти запросы, использовал его.

3
ответ дан 3 December 2019 в 06:42

Теги

Похожие вопросы