温馨提示×

centos jenkins怎样配置ssl

小樊
38
2026-09-21 13:43:54
栏目: 云计算

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

  1. 用 Nginx / Apache 反向代理(推荐)
  2. Jenkins 自身直接启用 HTTPS(使用 Java keystore)

下面分别说明,最推荐的是 Nginx + Let’s Encrypt(免费证书)。


一、推荐方案:Nginx 反向代理 + SSL(Let’s Encrypt)

1. 安装 Nginx

sudo yum install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx

2. 安装 certbot(免费 SSL 证书)

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

3. 申请 SSL 证书

假设你的域名是 jenkins.example.com

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

证书路径通常在:

  • /etc/letsencrypt/live/jenkins.example.com/fullchain.pem
  • /etc/letsencrypt/live/jenkins.example.com/privkey.pem

4. 配置 Nginx 反向代理 Jenkins

编辑:

sudo 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

sudo nginx -t
sudo systemctl restart nginx

6. Jenkins 配置(重要)

Jenkins 管理界面:

Manage Jenkins → Configure System

设置:

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

二、Jenkins 自身启用 HTTPS(Java Keystore)

适合无 Nginx 的环境。

1. 生成 keystore

keytool -genkeypair \
  -alias jenkins \
  -keyalg RSA \
  -keysize 2048 \
  -validity 365 \
  -keystore /etc/jenkins/jenkins.jks

2. 修改 Jenkins 启动参数

编辑:

sudo vi /etc/sysconfig/jenkins

添加:

JENKINS_ARGS="--httpsPort=8443 --httpsKeyStore=/etc/jenkins/jenkins.jks --httpsKeyStorePassword=你的密码"

3. 重启 Jenkins

sudo systemctl restart jenkins

访问:

https://服务器IP:8443

三、防火墙 & 安全组

确保放行:

  • 80
  • 443 (或 8443)
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

四、推荐方案总结

方案 推荐度 说明
Nginx + Let’s Encrypt ⭐⭐⭐⭐⭐ 稳定、免费、易维护
Jenkins 自带 SSL ⭐⭐⭐ 简单但不够灵活

如果你愿意,我可以:

  • 帮你写 完整 Jenkins + Nginx 一键配置
  • 或针对 内网 / 自签名证书 场景配置

你目前是 公网域名 还是 内网环境?

0 踩