You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需反向代理为Docker容器中的JFrog Artifactory配置HTTPS

问题描述

我正尝试在不使用反向代理的情况下,为部署在Docker容器中的JFrog Artifactory配置HTTPS。我的配置如下:

$JFROG_HOME/artifactory/var/etc/system.yaml 内容:

artifactory:
    tomcat:
        httpsConnector:
            enabled: true
            port: 8443
            certificateFile: "/opt/jfrog/artifactory/var/etc/security/ssl/arti-test.crt"
            certificateKeyFile: "/opt/jfrog/artifactory/var/etc/security/ssl/arti-test.key"

docker-compose.yaml 内容:

services:
  artifactory:
    image: releases-docker.jfrog.io/jfrog/artifactory-pro:latest
    container_name: artifactory
    ports:
      - 443:8443

但访问网站时显示「无法访问此网站」,请问实现容器中Artifactory无反向代理HTTPS的正确步骤是什么?


正确配置步骤及问题排查

1. 挂载证书与配置目录到容器

你的docker-compose.yaml未将本地证书和配置文件映射到容器内,导致容器无法读取证书和自定义配置。修改docker-compose.yaml添加volume映射:

services:
  artifactory:
    image: releases-docker.jfrog.io/jfrog/artifactory-pro:latest
    container_name: artifactory
    ports:
      - 443:8443
    volumes:
      # 本地证书目录映射到容器对应路径
      - ./local-ssl:/opt/jfrog/artifactory/var/etc/security/ssl
      # 本地system.yaml配置目录映射到容器
      - ./system-config:/opt/jfrog/artifactory/var/etc

注:./local-ssl是你本地存放证书/密钥的目录,./system-config是本地存放system.yaml的目录,需根据实际路径调整。

2. 修正证书文件权限

容器内Artifactory以jfrog用户运行,需确保证书文件权限合规:

  • 本地证书文件设为644权限,密钥文件设为600权限
  • 容器内证书目录所有者改为jfrog:jfrog,执行命令:
docker exec -it artifactory chown -R jfrog:jfrog /opt/jfrog/artifactory/var/etc/security/ssl

3. 验证证书有效性

确保证书与密钥配对且为PEM格式:

  • 检查证书格式:
openssl x509 -in arti-test.crt -text -noout
  • 验证证书与密钥匹配:
openssl x509 -noout -modulus -in arti-test.crt | openssl md5
openssl rsa -noout -modulus -in arti-test.key | openssl md5

两个命令输出的哈希值必须完全一致。

4. 完善system.yaml配置

补充HTTPS兼容性参数,避免协议或 cipher 问题:

artifactory:
    tomcat:
        httpsConnector:
            enabled: true
            port: 8443
            certificateFile: "/opt/jfrog/artifactory/var/etc/security/ssl/arti-test.crt"
            certificateKeyFile: "/opt/jfrog/artifactory/var/etc/security/ssl/arti-test.key"
            sslProtocol: "TLS"
            sslEnabledProtocols: "TLSv1.2,TLSv1.3"
            ciphers: "HIGH:!aNULL:!MD5"

5. 重启容器并排查日志

修改配置后重启容器:

docker-compose down && docker-compose up -d

查看容器日志定位错误:

docker logs -f artifactory

若日志出现certificate not found则检查路径映射;出现permission denied则修正权限;出现SSL初始化错误则检查证书格式与配对。

6. 测试HTTPS访问

先确认容器内端口监听状态:

docker exec -it artifactory netstat -tulpn | grep 8443

确认监听后,在宿主机访问https://localhost(或宿主机IP),自签名证书会触发浏览器安全提示,选择继续访问即可。


内容的提问来源于stack exchange,提问作者chen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 02:27:27