Файл join.key не создается или удаляется при обновлении до 6.8.x Artifactory Pro - PullRequest
0 голосов
/ 13 марта 2019

Я использую Artifactory Pro и недавно обновлен (с 6.6.5) до 6.8.6.

Когда сервер запускается, он показывает такие сообщения:

(oawsArtifactoryContextConfigListener: 96) - Приложение не может быть инициализировано: истекло время ожидания для открытия файла join.key по адресу /var/opt/jfrog/artifactory/etc/security/join.key (oawsArtifactoryFilter: 194)) - Не удалось инициализировать артефакт: контекст имеет значение null

Я искал и нашел такие документы, как: https://www.jfrog.com/confluence/display/ACC/Join.key+-+Creating+Trust+between+Services

В которых говорится, что я могу создать свой собственный 128-битный ключ AES (которыйЯ сделал с openssl), но затем сервер удаляет при загрузке с сообщениями, как не может быть прочитано или проверено.Я вижу сообщения об ошибках, такие как:

2019-03-12 22: 49: 15,670 [art-init] [INFO] (ojacAccessClientBootstrap: 70) - создание токена доступа с ключом соединения 2019-03-1222: 49: 15,790 [art-init] [ОШИБКА] (oawsArtifactoryContextConfigListener: 96) - Приложение не может быть инициализировано: не удалось предоставить токен, код ответа: 400, тело сообщения: {
"ошибки": [{""code ":" BAD_REQUEST "," message ":" Не удалось проверить jwt sha: 30f20af6bed379ee249ce6d5e536596c8d087f7d08ff907b6515e289d909c2f5 "}]} *

Я просто уверен, что смотрю страницу:*

{"errors": [{"status": 500, "message": "Не удалось инициализировать артефакт: проверьте журналы Artifactory на наличие ошибок."}]}

Для установки я использую загруженный метод rpm "rpm -U jfrog-artifactory-pro-6.8.6.rpm".

Я пробовал понизиться до 6.8.2, пробовал понизить до 6.6.8 затем обновление до 6.8.6.Кстати, понижение до 6.6.8 Я получаю 404.

Как я могу получить файл join.key, который работает, или отключить функциональность, которая требует этого?

Ответы [ 4 ]

0 голосов
/ 03 июня 2019

Я столкнулся с этой проблемой при чистой установке Artifactory 6.10.2 на экземпляр Amazon Linux EC2. Поскольку я использую пакет Amazon Linux tomcat-8.5, я не могу использовать обычные сценарии установки артефактов, для избежания следующего исключения необходимо выполнить несколько дополнительных шагов. Хитрость заключается в создании соответствующих ключей в нужное время во время инициализации экземпляра доступа и артефакта. У меня было много неудачных попыток, прежде чем я нашел эту комбинацию шагов, которая надежно работает для меня и позволяет аккуратно создавать новый экземпляр.

Примечание: Это относится только к чистой установке, а не к обновлениям.

java.lang.IllegalStateException: истекло время ожидания файла join.key быть доступным по адресу /usr/share/artifactory/etc/security/join.key

Процесс, который я использовал, был:

# Upload the access.war and artifactory.war via the Tomcat Manager webapp.
# As soon as these are uploaded, stop tomcat and delete the automatically-created artifactory folder.

# Create artifactory folder.
mkdir /usr/share/artifactory
chown tomcat.tomcat /usr/share/artifactory
cd /usr/share/artifactory

# Start tomcat.
service tomcat8 start

# Monitor the etc/security folder repeatedly until it has been automatically created by the artifactory webapp (a few seconds):
ls etc/security
ls etc/security
ls etc/security

# Create a new master key for artifactory:
openssl rand -hex 16 > etc/security/master.key
chown tomcat.tomcat etc/security/master.key
chmod 600 etc/security/master.key

# Monitor the access/etc/keys folder repeatedly until it has been automatically created by the access webapp  (about 20 seconds):
ls access/etc/keys
ls access/etc/keys
ls access/etc/keys

# Create a new join key for access:
openssl rand -hex 16 > access/etc/keys/join.key
chown tomcat.tomcat access/etc/keys/join.key
chmod 600 access/etc/keys/join.key
cp -a access/etc/keys/join.key etc/security/join.key

# Check the logs to confirm artifactory was able to connect to the access server:
tail logs/artifactory.log

2019-06-03 15:47:51,644 [art-init] [INFO ] (o.a.w.s.ArtifactoryContextConfigListener:215) -
###########################################################
### Artifactory successfully started (53.527 seconds)   ###
###########################################################
0 голосов
/ 14 марта 2019

Это решение, предоставленное JFROG, работает для нас

  • остановка Artifactory & Tomcat
  • удалить любой ключ в etc / security / join.key, если есть
    export JFROG_JOIN_KEY=abcdef1234567890abcdef1234567890

запустить артефакт с помощью этой конкретной команды

   systemctl start artifactory

Установка ключа (который не должен быть ключом выше) в переменной environement и запуск работали успешно.

0 голосов
/ 02 апреля 2019

Я также обновлял артефакт с 6.6.5 до 6.8.7 и получил ту же проблему, что и OP, но в моем случае установка была выполнена с использованием пользовательского tomcat и собственного служебного файла init.d. В логах приложения Artifactory Access я заметил следующую строку:

[WARN ] (o.j.a.s.s.JoinKeyDistributer:73) - There are no Paths to distribute the Join Key to

и после просмотра встроенного скрипта artifactoryManage.sh обнаружил, что Artifactory вводит новый параметр запуска Java - jfrog.join.key.paths

Ниже приводится цитата из artifactoryManage.sh

JOIN_PATHS=$ARTIFACTORY_HOME
    if runMetadata;then
       export JFROG_MDS_HOME="$ARTIFACTORY_HOME/metadata"
       export JOIN_PATHS=$JOIN_PATHS:$JFROG_MDS_HOME
    fi

JAVA_OPTIONS="$JAVA_OPTIONS -Djfrog.join.key.paths=$JOIN_PATHS"

Как только я добавил его в мой скрипт скрипта службы init.d, он был правильно и автоматически сгенерирован.

0 голосов
/ 13 марта 2019

Концепция ключа соединения введена в версии 6.8 до того, как аутентификация была выполнена с помощью ключа master.key, который был сгенерирован вместе с компонентом DB.Поскольку вы выполняете миграцию, БД не сможет получить доступ к сервису артефактов, поскольку у них зарегистрирован старый ключ.Можете ли вы попробовать одну вещь

  1. Создать новую БД для той же самой, используя файл db.properties
  2. Переконфигурировать артефакт -> посмотреть, работает он или нет -> Если это такВ таком случае проблема заключается в аутентификации по ключу, поэтому вы должны использовать существующий ключ вместо нового, так как он является миграцией.

Также я считаю, что во всех миграциях мы не меняем аутентификациюмеханизм

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...