温馨提示×

centos jenkins如何ssl

小樊
42
2026-09-09 08:04:55
栏目: 云计算

在 CentOS 上给 Jenkins 配置 SSL,常见有 3 种方式,最推荐的是 Nginx 反向代理 + SSL(简单、安全、易维护)。下面我按最常用方案一步步讲。


一、方案选择(先说结论)

✅ 推荐:Nginx + SSL(证书可用 Let’s Encrypt 或企业证书)
❌ 不推荐:直接改 Jenkins 内置 Winstone(配置复杂、易出错)


二、前置条件

  • CentOS 7 / 8
  • Jenkins 已安装并运行(默认端口 8080)
  • 域名已解析到服务器(如 jenkins.example.com)
  • 防火墙开放 80 / 443

三、使用 Nginx + Let’s Encrypt 配置 SSL(最推荐)

1️⃣ 安装 Nginx

yum install -y nginx
systemctl enable nginx
systemctl start nginx

2️⃣ 安装 Certbot(免费 SSL)

yum install -y epel-release
yum install -y certbot python3-certbot-nginx

3️⃣ 申请 SSL 证书

certbot --nginx -d jenkins.example.com

✅ 会自动:

  • 申请证书
  • 配置 Nginx HTTPS
  • 设置自动续期

4️⃣ 配置 Nginx 反向代理 Jenkins

编辑 Nginx 配置:

vi /etc/nginx/conf.d/jenkins.conf

示例配置:

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 https;
    }
}

5️⃣ 测试并重启 Nginx

nginx -t
systemctl restart nginx

访问:

https://jenkins.example.com

四、Jenkins 中开启 HTTPS 识别(重要)

进入 Jenkins: Manage Jenkins → Configure System

勾选: ✅ Jenkins URL

https://jenkins.example.com

✅ 启用 代理兼容

--httpListenAddress=127.0.0.1

五、自签名证书(内网环境)

如果你没有公网域名,可使用自签名证书:

openssl req -x509 -newkey rsa:2048 \
-keyout /etc/nginx/jenkins.key \
-out /etc/nginx/jenkins.crt -days 365 -nodes

Nginx 中替换:

ssl_certificate /etc/nginx/jenkins.crt;
ssl_certificate_key /etc/nginx/jenkins.key;

⚠️ 浏览器会提示不安全,属正常


六、防火墙 & SELinux

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

SELinux(如报错):

setsebool -P httpd_can_network_connect 1

七、自动续期 SSL

certbot renew --dry-run

八、常见坑

❌ Jenkins 仍走 http
✅ 检查 X-Forwarded-Proto

❌ 502 错误
✅ Jenkins 是否启动、端口是否正确

❌ 登录跳转异常
✅ Jenkins URL 必须是 https


九、总结

✅ 最佳实践:

CentOS + Jenkins + Nginx + Let’s Encrypt

如果你愿意,我可以:

  • 给你 一键脚本
  • 帮你 排查 502 / 重定向问题
  • 配置 Jenkins + Docker + SSL

直接告诉我你的 CentOS 版本 & Jenkins 安装方式 即可。

0 踩