如何在JFrog平台中启用TLS

Amit Turgeman
2023-01-22 11:09

左边图片:
当在负载均衡器上终止SSL流量时,客户端对JFrog平台部署(JPD)的请求将通过不安全的HTTP进一步发送到Router或/和Artifactory。
此外,在此场景中,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 Artifactory平台部署
  • 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 Product节点,您将需要手动复制Access根CA。


例如,在For Xray中遵循以下步骤。

  • 本根。crt从你的HA Artifactory节点之一
    • 根。目录:$JFROG_HOME/artifactory/var/etc/access/keys
  • 粘贴根。crt到Xray信任文件夹:
    • 受信任文件夹位于:$JFROG_HOME/xray/var/etc/security/keys/trusted
  • 重新启动x光

在Artifactory中启用TLS

1.在系统中设置“Artifactory .tomcat. httpconnector .enabled”,启用Artifactory中的TLS。Yaml文件为true。

artifactory:
tomcat:
httpsConnector:
启用:真

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

注意:
默认情况下,8443端口将用于人工TLS连接。如果您想要更改它,请相应地更新artificial .tomcat. httpconnector .port: 8443。

用户添加图片

在更新Artifactory. Tomcat . httpconnector .enabled并重新启动Artifactory后,以下配置会自动添加到Tomcat server.xml中。
Server.xml位于$JFROG_HOME/artifactory/app/artifactory/tomcat/conf目录下<连接器端口="8443"协议="org.jfrog.tomcat.connector. "HTTP11NioProtocol" maxThreads="200" bindOnInit="false" scheme="https" secure="true"
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错误超时非幂等;
proxy_next_upstream_tries 1;
proxy_set_header x - jfrog - overrides - base - url $http_x_forwarded_proto://$host:$server_port;
proxy_set_header x - forwarded port $server_port;
proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto
主机$http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
add_header X-Content-Type-Options "nosniff" always;
严格传输安全always;

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


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

结论:

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

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

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

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