ARTIFACTORY:如何在JFrog平台中启用TLS

Amit Turgeman
2023-01-22 11:09

左边图片:
当在负载平衡器上终止SSL通信时,客户机对JFrog平台部署(JPD)的请求将通过不安全的HTTP进一步发送到路由器或/和工厂。
此外,在此场景中,HA设置中的Artifactory节点将通过HTTP以及其他JFrog产品(例如Xray)进行通信。hth华体会最新官方网站

正确的图片:
在这个分步指南中,我们的主要目标是展示如何在JFrog平台中启用TLS,以便确保Xray和Artifactory等jpd之间以及负载平衡器和jpd之间的通信安全。
用户添加图片用户添加图片

用户添加图片

使用Access作为证书颁发机构

为了在JFrog平台中启用TLS,我们将遵循以下步骤:使用Access作为证书颁发机构.在此设置中,我们将使用Access作为证书颁发机构来生成自签名证书。为了简单起见,我们的设置将由两个Artifactory节点和一个Xray节点定义。

以下配置文件将被更新。

access.config.yaml
system.yaml
Artifactory-nginx.conf

示例设置:

  • 2人工平台部署
  • 1 x射线平台部署
  • 一个负载均衡器(本例中是Nginx)
    • 基于Nginx的TLS终止。

在Access中启用TLS

1.首先,我们需要确保在JFrog Access中启用了TLS。
从集群中选择一个Artifactory节点。
2.在access.config中设置tls: true。yml,:
a. $ cd $JFROG_HOME/artifactory/var/etc/access
B. $ mv access.config.latest.yml access.config.import.yml
c.在access.config.import.yml中添加以下代码段。安全:
tls:真
d.重新启动Artifactory节点。
e. ' tls: true '设置在所有Artifactory节点中传播。

在继续之前,检查它是否传播到其他节点。为了确保一切都按预期设置,请在每个Artifactory节点中验证access.config.yml是否已使用' tls:true '更新。对于Artifactory节点,根CA通过数据库自动分发,不需要手动复制Access根CA。

3.对于每个其他JFrog产品节点,您都需要手动复制Access根CA。


例如,在x射线中遵循以下步骤。

  • 本根。从您的HA人工节点之一
    • 根。$JFROG_HOME/artifactory/var/etc/access/keys
  • 粘贴根。crt到x射线受信任文件夹:
    • 可信文件夹位于:$JFROG_HOME/xray/var/etc/security/keys/trusted
  • 重新启动x光

在Artifactory启用TLS

1.通过在系统中设置Artifactory .tomcat. httpconnector .enabled开启Artifactory中的TLS。Yaml文件设置为true。

artifactory:
tomcat:
httpsConnector:
启用:真

2.更新系统后。重新启动Artifactory。
3.确保更新每个Artifactory节点系统。Yaml具有此属性,因为没有自动传播的系统。Yaml配置文件。

注意:
缺省情况下,端口8443将用于TLS连接。如果您想更改它,请相应地更新artifactory.tomcat. httpconnector .port: 8443。

用户添加图片

更新Artifactory. Tomcat . httpconnector .enabled并重启Artifactory后,下面的配置会自动添加到Tomcat server.xml中。
Server.xml位于$JFROG_HOME/artifactory/app/artifactory/tomcat/conf中waitForSSLCertificateFile = " / opt / jfrog / artifactory / var /数据/路由器/键/ server.crt”
waitForSSLCertificateKeyFile = " / opt / jfrog / artifactory / var /数据/路由器/键/服务器。关键" / >

Artifactory-Nginx配置

最后一个需要更新的配置文件是artifactory-nginx.conf。
从“反向代理设置”界面生成Nginx配置后,需要更新以下内容:

  • 上游artifactory-direct
    • 修改端口:8081→8443

上游人工直接{
服务器FIRST_NODE_IP美元:8443;
服务器SECOND_NODE_IP美元:8443;

  • 位置
    • 修改proxy_pass: http://artifactory→https://artifactory。
    • 修改的位置。Proxy_pass: http://artifactory-direct/→https://artifactory-direct/。

位置/ {
proxy_read_timeout 2400年代;
proxy_pass_header服务器;
proxy_cookie_path ~ * ^ /。* /;
proxy_buffer_size 128 k;
Proxy_buffers 40 128k;
proxy_busy_buffers_size 128 k;
proxy_pass https://artifactory;
Proxy_next_upstream错误超时non_幂等;
proxy_next_upstream_tries 1;
$http_x_forwarded_proto://$host:$server_port;
proxy_set_header X-Forwarded-Port $server_port;
$http_x_forwarded_proto;
proxy_set_header $http_host;
$proxy_add_x_forwarded_for;
add_header X-Content-Type-Options "nosniff" always;
add_header Strict-Transport-Security always;

位置~ ^/artifactory/ {
proxy_pass https://artifactory-direct;


在这些更改之后,请确保重新加载Nginx配置。

结论:

在本文中,我们在JFrog平台中配置了TLS。

这意味着,到JFrog平台的所有通信都需要使用TLS,包括平台内的服务到服务通信。

这是通过配置三个配置文件完成的:access.config。yml、系统。Yaml和artifactory-nginx.conf。

我们修改了access.config.yml,启用了tls:以在JFrog平台中强制安全通信。之后我们更新了Artifactory系统。在Tomcat级别打开HTTPS连接器。最后,我们更新了来自Nginx的请求,通过修改proxy_pass从HTTP→HTTPS来通过HTTPS到Artifactory。