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

使用docker-compose实现Jenkins的HTTP自动重定向至HTTPS

你当前配置中JENKINS_OPTS设置了--httpPort=-1,直接禁用了Jenkins的HTTP监听端口,宿主机映射的80端口无服务响应,无法实现HTTP自动跳转HTTPS,以下是两种可直接落地的配置方案:

方案一:使用Jenkins原生重定向(无额外组件,配置最简)

该方案利用Jenkins内置跳转能力,无需额外部署反向代理,适配你已准备好JKS格式证书的场景:

  • 修改docker-compose.yml内的JENKINS_OPTS配置,开启HTTP端口监听,启用强制HTTPS跳转,补全JKS证书加载参数,将原有配置:
JENKINS_OPTS: --httpPort=-1 --httpsPort=8443

替换为:

JENKINS_OPTS: --httpPort=80 --httpsPort=8443 --httpsKeyStore=/var/lib/jenkins/dcsjenkins.jks --httpsKeyStorePassword=替换为你实际的JKS证书密码 --httpRedirectToHttps=true

若你的JKS证书配置了非默认别名,追加参数--httpsKeyStoreAlias=你的证书别名即可

  • 保存配置后,在docker-compose.yml所在目录执行以下命令重启服务:
    docker-compose up -d
  • 验证:访问http://你的服务域名/实例公网IP,会自动返回302状态码跳转到HTTPS地址。

若跳转后地址携带:8443端口号,登录Jenkins后进入「系统管理-系统配置」,将Jenkins URL修改为https://你的服务域名/保存即可。
注意:提前确认GCP实例的VPC防火墙、系统内部防火墙(如firewalld/ufw)已放开80、443、50000端口的入站规则

方案二:使用Nginx反向代理实现跳转(配置灵活,适合自定义安全策略场景)

如果需要配置HSTS、安全响应头、多服务转发等能力,可新增Nginx层统一处理HTTPS终止和跳转,Jenkins仅监听内部HTTP端口:

  • 调整Jenkins服务的端口映射,不直接暴露80/443到公网,仅保留内部通信端口,将ports配置修改为:
ports:
  - "127.0.0.1:8080:8080"
  - "50000:50000"

同时将JENKINS_OPTS修改为:

JENKINS_OPTS: --httpPort=8080
  • 在docker-compose.yml中新增Nginx服务,配置80端口自动跳转HTTPS、443端口反向代理到Jenkins,Nginx可直接使用PEM格式证书,无需转换为JKS:
services:
  nginx:
    image: nginx:alpine
    container_name: jenkins-nginx
    restart: always
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx/conf.d:/etc/nginx/conf.d
      - ../opt/cert:/etc/nginx/cert
  # 原有jenkins服务配置保留即可

在./nginx/conf.d目录下新建jenkins.conf配置文件,参考内容如下:

server {
    listen 80;
    server_name 你的服务域名;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name 你的服务域名;
    ssl_certificate /etc/nginx/cert/你的证书公钥文件.pem;
    ssl_certificate_key /etc/nginx/cert/你的证书私钥文件.key;
    # 可按需追加SSL协议版本、加密套件等优化配置
    location / {
        proxy_pass http://jenkins:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
    }
}
  • 执行docker-compose up -d启动新增的Nginx服务、重启调整后的Jenkins服务即可生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 10:06:34