m2e с аутентификацией на основе ssl-сертификатов

TL; DR

Как сделать встроенный Maven Eclipse подключаться к репозиторию HTTPS, который использует аутентификацию на основе сертификатов?

кажется,m2e может найти хранилища ключей, но не может подключиться. Maven командной строки работает как шарм, используя точно такие же хранилища ключей. Run as -> Maven build работает с внешним Maven, а не со встроенным.

у меня есть проект Maven с зависимость. Эта зависимость доступна в репозитории, использующем проверку подлинности на основе SSL-сертификата в дополнение к обычной комбинации имя пользователя и пароль. Мне нужно, чтобы он работал в Eclipse Luna со встроенным Maven. Все, что я могу получить, это handshake_failure. Исследование журналов показывает, что встроенный Maven не может найти соответствующий сертификат.

когда я использую Run as -> Maven build С помощью внешнего Maven или Maven командной строки он успешно подключается к репозиторию и извлекает артефакт точно такой, как нужно.

интересно то, что как внешние, так и встроенные Mavens имеют одинаковую версию (3.2.3).

настройка

я передаю эти параметры через eclipse.ini:

-Djavax.net.ssl.trustStore=java.cacerts
-Djavax.net.ssl.trustStorePassword=******
-Djavax.net.ssl.keyStore=private.cacerts
-Djavax.net.ssl.keyStorePassword=******
-Djavax.net.debug=ssl,handshake

на содержит:

  • вся цепочка сертификатов для репозитория, к которому я подключаюсь (цепочка заканчивается самозаверяющим сертификатом), один из которых хранится под псевдонимом repository.location.url (буквальное расположение репозитория здесь, например myrepository.com)
  • сертификат для Maven central

на keyStore файл содержит импортированный сертификат PKCS под псевдонимом репозитория.

кажется, нет никаких проблем с настройкой, так как работает Maven командной строки. Если я использую внешний Maven или командную строку, он работает. Если я переключусь на встроенный (который всегда используется для разрешения зависимостей),handshake error показывает вверх.

что я делаю не так? возможно, я упускаю что-то совершенно очевидное. Любая помощь будет оценена.

3 ответов


У меня была точно такая же проблема: Eclipse не удалось подключиться к внешнему репозиторию maven с помощью встроенной установки maven, если репозиторию требуется сертификат SSL клиента.

проблема была решена путем обновления до последней jvm (в моем случае-1.8.0u52) и обновление плагина Eclipse m2e до версии 1.6.1 (с версией Eclipse 4.4.0).


параметры, которые не работали для меня

  • установка сертификата на java > jre > lib > безопасность > cacerts
  • предоставление cacerts в аргументах Java run configuration vm
  • обновление eclipse до последних версий, таких как mars или neon
  • обновление плагина maven для eclipse до 1.7.0

шаги, которые решили проблему для меня

  • скачать сертификат файл & добавить в eclipse в настройки > удаленные системы > SSL > добавить
  • очистить .m2 > папка репозитория всех существующих файлов
  • откройте eclipse, щелкните правой кнопкой мыши проект и выберите Maven > Обновить Проект. Выберите принудительное обновление снимков / выпусков

обновление ПО 9/19/2017


в конфигурациях запуска выберите сборку maven, а затем выберите вкладку JRE в верхней части диалогового окна. Поместите параметры SSL в текстовую область аргументов VM.

вот что установил его для меня.