x射线可以连接到Artifactory,但Artifactory不能连接到x射线
相关版本:这个信息属于Artifactory版本高达6.x而且x射线版本最高2.x
直到升级到Artifactory 7。X射线和X射线3。X,这是最常见和最可怕的用户将在x射线安装期间看到的消息。虽然这个问题有很多可能的原因,但也有一些原因许多解决方案.
背景
x光需要双向连接到Artifactory(即x射线可以到达Artifactory, Artifactory可以返回到x射线)。这个连接是在第一次安装Xray时建立的。用于完成此任务的两个主要参数是:
- Artifactory URL,x射线用哪个连接到Artifactory
其他可以发挥作用的设置包括:
- Artifactory或x射线代理设置
- - - - - -防火墙规则
- - -主机服务器的网络设置(适用于Xray和Artifactory)
初始故障排除
错误通常为:x射线无法连接到Artifactory"
#从x射线主机执行
旋度-v http://artifactory.com:8081/artifactory/api/system/ping
好吧
在x射线入职向导,更新Artifactory URL,使用执行cURL命令后返回给你的URL:
错误通常为:x射线可以到达Artifactory,但Artifactory无法到达x射线"
#从Artifactory主机执行
旋度-v http://xray.com:8000/api/v1/system/ping
Xray的预期回复:
{“状态”:“乒乓球”}
这些cURL命令应该有助于诊断大多数Xray <> Artifactory连接问题。更新你的x射线基础URL使用通过上述测试的URL。一种方法是选择回来按钮x射线入职向导返回该菜单项。或者,在x射线中,导航到Admin >高级>一般.然而,有额外的参数如果你在更多的范围内运作,这可能会发挥作用专业环境中,这些将在下面进一步解释。
代理
如果上面的cURL测试成功,但Xray UI测试仍然失败,这通常意味着存在更专门的网络。在许多安全环境中,代理服务器是Artifactory或x射线服务运行所必需的。一个共同的混乱发生时,默认代理已经为Artifactory设置,然后系统使用它连接到x射线。尽管有一个选项可以在Xray <> Artifactory连接建立之后绕过它,但是Xray UI测试总是尝试使用代理服务器。
作为一个解决方案,尝试切换Artifactory的系统默认值代理启动,看看x射线现在可以连接:
注意:在滴答的时候要小心系统默认值复选框,因为它将把您的代理添加到所有您的远程存储库。
SSL加密
如果你打算切换默认的Xray或ArtifactoryHTTP协议到HTTPS协议,请注意,这可能会导致Xray <> Artifactory连接出现问题。若要排除此问题,请确保SSL已在x射线中正确设置。HTTPS在x射线中通过放置SSL证书来启用XRAY_HOME /数据/ ssl / serverCerts美元然后勾选使用SSL复选框:
x光必须使用单片SSL密钥/证书对.如果SSL证书是针对特定的普通的名字(例如,xray.com),确保Xray Base URL匹配此参数。一定要更新此设置确保URL使用HTTPS:
如果需要,您可以修改Artifactory主机的设置文件,使URL匹配x射线IP地址。
如果你正在使用内部或自签名SSL证书,您需要将公共证书添加到Artifactory的JVM信任存储区。否则,你会看到PKIX路径构建失败Artifactory日志中的错误信息:
2019-08-22 22:57:45,931 [pool-17-thread-1] [WARN] (o.j.x.c.h.XrayHeartbeatImpl:176) -无法检索x射线服务器状态,原因:x射线服务器不可达:sun.security.validator.ValidatorException: PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效认证路径可以找到解决这个问题的办法在这里.
如果你用的是自签名SSL证书对于Artifactory,您需要将其导入到Xray主机的操作系统中密钥存储库.或者,您可以勾选SSL不安全x射线用户界面中的复选框(Admin ->高级->普通).
高可用性
可能导致问题的最后一件事是负载均衡器在Artifactory或x光前。如果连接测试间歇性地成功,或以上建议的所有测试都通过,但x射线扫描二进制文件失败,则可能是由负载平衡器引起的。在这种情况下,您可能需要绕过Artifactory前面的负载平衡器。x射线只需要连接到一个Artifactory节点,因为任何扫描的结果都会传播到集群的其他部分。但是,要保证制度保持在线,请先尝试使用负载均衡器URL。
