温馨提示×

centos jenkins如何配ssl

小樊
44
2026-10-17 23:52:44
栏目: 云计算

在 CentOS 上给 Jenkins 配置 SSL(HTTPS),常见有三种方式,按推荐程度如下:


方式一(✅ 推荐):Nginx 反向代理 + SSL

适合生产环境,Jenkins 本身不处理 SSL,由 Nginx 处理

1. 安装 Nginx

yum install -y nginx
systemctl enable nginx
systemctl start nginx

2. 申请 SSL 证书

  • 自有证书:yourdomain.crt + yourdomain.key
  • 或 Let’s Encrypt:
yum install -y certbot
certbot certonly --nginx -d jenkins.example.com

3. 配置 Nginx

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

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

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

server {
    listen 80;
    server_name jenkins.example.com;
    return 301 https://$host$request_uri;
}

4. 修改 Jenkins 配置

vi /etc/sysconfig/jenkins
JENKINS_ARGS="--httpListenAddress=127.0.0.1"
systemctl restart jenkins
systemctl restart nginx

方式二:Jenkins 自带 SSL(不推荐)

1. 生成 keystore

openssl req -x509 -newkey rsa:2048 \
  -keyout key.pem -out cert.pem -days 365 -nodes

openssl pkcs12 -export \
  -in cert.pem -inkey key.pem \
  -out jenkins.p12 -name jenkins

2. 修改 Jenkins 启动参数

vi /etc/sysconfig/jenkins
JENKINS_ARGS="--httpsPort=8443 --httpsKeyStore=/var/lib/jenkins/jenkins.p12 --httpsKeyStorePassword=changeit"
systemctl restart jenkins

访问:

https://ip:8443

⚠️ 配置复杂,兼容性差,不推荐生产使用


方式三:Apache 反向代理(类似 Nginx)

如果你更熟悉 Apache:

yum install httpd mod_ssl

使用 ProxyPass + SSL 配置


验证 SSL 是否生效

curl -I https://jenkins.example.com

常见问题

Jenkins 登录后重定向到 http

在 Jenkins → 系统配置 → Jenkins URL

https://jenkins.example.com/

防火墙

firewall-cmd --add-port=443/tcp --permanent
firewall-cmd --reload

如果你告诉我:

  • Jenkins 版本
  • CentOS 版本(7 / 8 / Stream)
  • 是否使用域名 or IP
  • 是否已有证书

我可以给你完全定制的配置。

0 踩