![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Alexandr87 |
|
||||||||
![]() дыкий псых ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: 6 Всего: 39 |
Для работы с SSL нам потребуется центр выдачи сертификатов. В тестовых целях можно воспользоваться openssl.
Итак, подготавливаем необходимые сертификаты. Небольшой скриптик (в PATH должны быть openssl и keytool)
Примерный вывод:
Все необходимые сертификаты и ключи подготовлены, приступаем к настройке клиента и сервера. Настройка клиента заключается в добавлении сертификата центра эмиссии, как доверенного сертификата. И непосредственно пользовательского сертификата с ключом. Добавление сертификатов рассмотрю на примере Mozilla FireFox, работа с сертификатами в других браузерах не должна сильно отличаться. Итак, Main menu\Edit\Preferences\Advanced\Encryption\View Certificates. Нас интересуют вкладки Authorities (для доверенных сертификатов) и Your Certificates (для вашего сертификата с ключом). Собственно переходим на вкладки Authorities, жмем кнопку Import, выбираем наш файл caCert.crt. Появится окно, в котором необходимо указать, что сертификат будет использоваться для идентификации web серверов. Все OK, сертификат должен появиться, среди других доверенных сертификатов. Теперь добавим пользовательский сертификат. Переходим на вкладку Your Certificates, import. Если это первый сертификат в вашем хранилище, вас попросят ввести пароль для доступа к хранилищу личных сертификатов, если не первый, то, соответственно спросят этот пароль. Далее попросят ввести пароль, на котором зашифрован ключик, который мы импортируем, вводим. Далее должно последовать появление сообщения об успешном добавлении сертификата, и сертификат должен появиться в списке. Настройка сервера tomcat заключается в добавлении SSL коннектора, его настройки, добавление хранилища доверенных сертификатов, и добавления хранилища сертификата с ключом сервера. Создаем папку $CATALINA_HOME/ssl, в которую копируем наши файлы tomcatCert.pfx и .truststore. Правим конфигурационный файл conf/server.xml: Раскоменчиваем SSL коннектор добавляем туда параметры для указания хранилищ сертификатов, должно получиться что-то вроде этого.
Следуем обратить внимание на последние две строки и на clientAuth="true". Запускаем сервер. Пробуем подключиться на 8443 порт. https://servername:8443. Если спросит сертификат, значит, все идет нормально, выбираем наш сертификат и мы на нужной странице. Теперь займемся серверными приложениями. Создаем простой сервлет, в обработчик добавляем следующий код
В итоге, у нас есть объект типа java.security.cert.X509Certificate, представляющий пользовательский сертификат. Кроме атрибута javax.servlet.request.X509Certificate, сервер добавляет еще несколько, можно глянуть их, может пригодятся. Собственно все. Это сообщение отредактировал(а) Alexandr87 - 14.10.2007, 07:45 |
||||||||
|
|||||||||
Stampede |
|
|||
![]() Гносеолог ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 963 Регистрация: 25.4.2005 Где: Calgary, Alberta, Canada Репутация: 66 Всего: 144 |
Товарищи модеры, а ведь отличная статья. Прямо так и просится в ФАК. Или уже там?
ЗЫ. Увы, ФАК на Вмнграде не так чтобы очень внятный в смысле навигации, но я надеюсь, это вопрос решаемый. Просто не совсем понятно, вроде товарищ отметился, а оргвыводов не видно. А ведь тема действительно животрепещущая. Alexandr87, от меня - большое человеческое спасибо за раскрытие темы, ну а насчет наград - это пусть модераторы решают. -------------------- "If you want something done right, do it yourself" По секрету: выучить английский - реально! |
|||
|
||||
Alexandr87 |
|
|||
![]() дыкий псых ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: 6 Всего: 39 |
Stampede, спасибо за отзыв.
|
|||
|
||||
olegrolik |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 309 Регистрация: 25.1.2006 Репутация: нет Всего: нет |
Есть одно добавление: при создании сертификатов надо вводить разные имена (как указано в этом факе). Иначе, будет вылетать эксепшн: что-то вроде "recv failed".
|
|||
|
||||
olegrolik |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 309 Регистрация: 25.1.2006 Репутация: нет Всего: нет |
В томкате 6.0 это не работает. Надо попробовать вот так:
|
||||||
|
|||||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |