Sonarqube через https

Я пытаюсь интегрировать SonarQube со сборками TFS 2013. Экземпляр SonarQube настроен на использование https. По какой-то причине TFS выдает следующую ошибку, пытаясь связаться с SonarQube:

ERROR: Error during SonarQube Scanner execution <br /> ERROR: Unable to execute SonarQube ERROR: Caused by: Fail to get bootstrap index from server ERROR: Caused by: sun.security.validator.ValidatorException: PKIX path building failed:Sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target ERROR: Caused by: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target ERROR: Caused by: unable to find valid certification path to requested target

Я нашел это сообщение ТАК: «Не удалось построить путь PKIX» и «не удалось найти действительный путь сертификации к запрошенной цели» и экспортировал сертификат и использовал keytool, чтобы импортировать его в хранилище ключей Java. Я все еще получаю ту же ошибку. Похоже, что sonarQube каким-то образом не берет сертификат из хранилища ключей Java по умолчанию.

Я пробовал запустить сонар-сканер вручную и передать информацию о сертификате в параметрах, но он все равно не принимает сертификат.

C:\SonarScanner\sonar-scanner-3.2.0.1227\bin>sonar-scanner.bat -X -Djavax.net.debug="ssl,handshake" -Djavax.net.ssl.trustStore="C:/Program Files/Java/jre1.8.0_121/lib/security/cacerts" -Djavax.net.ssl.keyStore="C:/Program Files/Java/jre1.8.0_121/lib/security/cacerts"

Глядя на сообщения отладки, он не распознал дополнительные параметры. enter image description here

Какие-либо предложения?

Вы перезапускали агентов?

Jeroen Heier 26.10.2018 20:04

Да, я сделал это после импорта сертификата.

DevOpsy 28.10.2018 23:55

Вам нужно указать -X перед каждым аргументом? Вам нужен пробел между -X и аргументом JavaVM? (и если вы зашли так далеко, нужно ли вам также указать пароли хранилища ключей / доверенного хранилища?) Не могли бы вы вместо этого просто указать хранилище ключей и такие свойства в этом файле свойств, который он все равно читает?

moilejter 29.10.2018 00:17

@moilejter: -X - переключатель для получения отладочного вывода. -D - это переключатель для определения свойств, передаваемых JavaVM. Я также пытался передать KeyStorePassword, но он все еще не принимает сертификат.

DevOpsy 29.10.2018 00:53
14
4
15 294
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Установка переменной окружения "SONAR_SCANNER_OPTS" на -Djavax.net.ssl.trustStore="C:/Program Files/Java/jre1.8.0_121/lib/security/cacerts" -Djavax.net.ssl.keyStore="C:/Program Files/Java/jre1.8.0_121/lib/security/cacerts" помогала мне.

Журнал отладки теперь показывает, что он указывает на хранилище ключей, заданное в переменной среды. Он работал как из командной строки с использованием Sonar-Scanner.bat, так и во время работы в составе сборки TFS 2013.

@guilhermecgs: Как у вас сканер? Какую ошибку вы получаете? В журнале отладки указано расположение хранилища ключей или он пуст?

DevOpsy 18.09.2019 03:37

Я выполняю задачу оценки на своем локальном компьютере. И да, хранилище ключей НЕ пустое. Смотрите здесь: dropbox.com/s/h8vlqko7c0a70tz/…. Команда: "./gradlew sonarqube (...)" Я уже добавил сертификат, используя "keytool" -importcert -file (...) "Есть подсказки?

guilhermecgs 18.09.2019 15:17

@guilhermecgs: я не уверен. Я не использовал градиент. Может быть, задать отдельный вопрос и кто-нибудь сможет помочь.

DevOpsy 19.09.2019 02:52

Другие вопросы по теме