升级到6.8.x Artifactory Pro时未创建或删除join.key文件

升级到6.8.x Artifactory Pro时未创建或删除join.key文件,artifactory,Artifactory,我使用的是Artifactory Pro,最近升级到了6.8.6(从6.6.5版) 当服务器启动时,会显示如下消息: (o.a.w.s.ArtifactoryContextConfigListener:96)-应用程序无法运行 被初始化:等待创建join.key文件时超时 可访问/var/opt/jfrog/artifactory/etc/security/join.key (o.a.w.s.ArtifactoryFilter:194)-Artifactory未能初始化: 上下文为空 我搜索并找

我使用的是Artifactory Pro,最近升级到了6.8.6(从6.6.5版)

当服务器启动时,会显示如下消息:

(o.a.w.s.ArtifactoryContextConfigListener:96)-应用程序无法运行 被初始化:等待创建join.key文件时超时 可访问/var/opt/jfrog/artifactory/etc/security/join.key (o.a.w.s.ArtifactoryFilter:194)-Artifactory未能初始化: 上下文为空

我搜索并找到了如下文档:

也就是说,我可以创建自己的128位AES密钥(我使用openssl创建了该密钥),但服务器会在引导过程中删除,并显示无法读取或验证之类的消息。我看到的错误消息如下:

2019-03-12 22:49:15670[艺术初始][信息] (o.j.a.c.AccessClientBootstrap:70)-使用连接创建访问令牌 图例2019-03-12 22:49:15790[艺术初始][错误] (o.a.w.s.ArtifactoryContextConfigListener:96)-应用程序无法运行 被初始化:无法授予令牌,响应代码:400,正文:{
“错误”:[{ “代码”:“错误的请求”, “消息”:“无法验证jwt sha:30f20af6bed379ee249ce6d5e536596c8d087f7d08ff907b6515e289d909c2f5”} ]}

我现在正在看一个artifactory页面,上面写着:

{“错误”:[{ “地位”:500, “消息”:“Artifactory未能初始化:检查Artifactory日志是否有错误。”}]}

我正在使用下载的rpm方法
“rpm-ujfrog-artifactory-pro-6.8.6.rpm”
进行安装

我试着降级到6.8.2,我试着降级到6.6.8,然后升级回6.8.6。 顺便说一句,降级到6.6.8我最终得到了404


如何获得一个有效的
join.key
文件,或者关闭需要它的功能?

在版本6.8中引入了join-key概念,在此之前,身份验证是由一个名为master.key的密钥完成的,该密钥是随DB组件生成的。由于您正在迁移,DB将无法访问artifactory服务,因为旧密钥已向它们注册。你能试试吗

  • 使用DB.properties文件为其创建新的DB
  • 重新配置artifactory-->查看是否启动-->如果启动,则问题在于密钥身份验证,因此您必须使用现有密钥而不是新密钥,因为这是一个迁移

  • 此外,我相信在所有迁移中,我们都不会更改身份验证机制。在6.8版之前,加入密钥的概念已经引入,身份验证是由一个名为master.key的密钥完成的,该密钥是与DB组件一起生成的。由于您正在迁移,DB将无法访问artifactory服务,因为旧密钥已向它们注册。你能试试吗

  • 使用DB.properties文件为其创建新的DB
  • 重新配置artifactory-->查看是否启动-->如果启动,则问题在于密钥身份验证,因此您必须使用现有密钥而不是新密钥,因为这是一个迁移

  • 此外,我相信在所有迁移中,我们不会改变身份验证机制

    JFROG提供的解决方案为我们提供了帮助

    • stop Artifactory&Tomcat
    • 删除etc/security/join.key下的任何密钥(如果有)
    使用此特定命令启动artifactory

       systemctl start artifactory
    

    在环境变量中设置键(不应该是上面的键)并启动成功。

    JFROG提供的此解决方案对我们有效

    • stop Artifactory&Tomcat
    • 删除etc/security/join.key下的任何密钥(如果有)
    使用此特定命令启动artifactory

       systemctl start artifactory
    

    在环境变量中设置键(不应该是上面的键)并启动成功。

    我还将artifactory从6.6.5升级到了6.8.7,并遇到了与OP相同的问题,但在我的情况下,安装程序使用自定义tomcat和自己的init.d服务文件。在Artifactory Access应用程序的日志中,我注意到以下行:

    [警告](o.j.a.s.JoinKeyDistributer:73)-没有将连接密钥分发到的路径

    在查看内置脚本artifactoryManage.sh之后,发现Artifactory引入了新的java启动参数-
    jfrog.join.key.path

    下面是来自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服务脚本中时,密钥就被正确地自动生成了。

    我还将artifactory从6.6.5升级到了6.8.7,并遇到了与OP相同的问题,但在我的例子中,安装程序是使用自定义tomcat和自己的init.d服务文件。在Artifactory Access应用程序的日志中,我注意到以下行:

    [警告](o.j.a.s.JoinKeyDistributer:73)-没有将连接密钥分发到的路径

    在查看内置脚本artifactoryManage.sh之后,发现Artifactory引入了新的java启动参数-
    jfrog.join.key.path

    下面是来自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服务脚本中时,密钥就被正确地自动生成。

    我在Amazon Linux EC2实例上干净地安装Artifactory 6.10.2时遇到了这个问题。由于我使用的是AmazonLinuxTomcat-8.5包,所以我不能使用普通的artifactory安装脚本,为了避免以下异常,还需要一些额外的步骤。诀窍是在access和artifactory实例初始化期间的正确时间创建适当的键。在我找到这个步骤组合之前,我做了很多失败的尝试,这些步骤对我来说是可靠的,并且允许干净地创建一个新实例

    注意:这只适用于干净的安装,不适用于升级

    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)   ###
    ###########################################################
    

    我在cl上遇到了这个问题