温馨提示×

ubuntu jenkins怎样配置ssl

小樊
34
2026-10-13 01:46:49
栏目: 云计算

在 Ubuntu 上给 Jenkins 配置 SSL 常见有 两种方式:

  1. 用 Nginx / Apache 做反向代理(推荐)
  2. Jenkins 自身直接启用 HTTPS(不推荐,维护麻烦)

下面以 Nginx + Let’s Encrypt(免费证书) 为例,最常用、最稳妥。


一、前提条件

  • Ubuntu 20.04 / 22.04
  • Jenkins 已安装并运行(默认 8080)
  • 有一个域名(如 jenkins.example.com)
  • 服务器 80 / 443 端口可访问

二、安装 Nginx

sudo apt update
sudo apt install nginx -y

三、申请 SSL 证书(Let’s Encrypt)

1. 安装 certbot

sudo apt install certbot python3-certbot-nginx -y

2. 申请证书

sudo certbot --nginx -d jenkins.example.com

按提示输入邮箱,同意条款即可。


四、配置 Nginx 反向代理 Jenkins

编辑 Nginx 配置:

sudo nano /etc/nginx/sites-available/jenkins

内容如下(certbot 会自动补证书路径):

server {
    listen 80;
    server_name jenkins.example.com;

    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name jenkins.example.com;

    ssl_certificate     /etc/letsencrypt/live/jenkins.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/jenkins.example.com/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1: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 $scheme;
    }
}

启用配置:

sudo ln -s /etc/nginx/sites-available/jenkins /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

五、Jenkins 系统配置(重要)

进入: Jenkins → 系统管理 → 系统配置

设置:

  • Jenkins URL:https://jenkins.example.com/

否则 Webhook、代理、邮件会出错。


六、自动续期 SSL 证书

sudo certbot renew --dry-run

certbot 默认已配置 systemd 定时任务。


七、可选:Jenkins 自身直接开 HTTPS(不推荐)

java -jar jenkins.war \
  --httpPort=-1 \
  --httpsPort=8443 \
  --httpsCertificate=/path/cert.pem \
  --httpsPrivateKey=/path/key.pem

⚠️ 维护复杂,不建议生产用。


八、常见问题

  • 页面打不开:检查防火墙 ufw allow 443
  • 502:Jenkins 没启动或端口错
  • 重定向循环:确认 X-Forwarded-Proto

如果你愿意,我可以:

  • 帮你写 纯 Jenkins SSL 配置
  • 或 内网自签证书方案
  • 或 Docker 版 Jenkins + SSL

你现在是 物理机 / Docker / 云服务器?

0 踩