在 CentOS 上给 Jenkins 配置 SSL,常见有 两种方式:
下面分别说明,最推荐的是 Nginx + Let’s Encrypt(免费证书)。
sudo yum install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx
sudo yum install -y epel-release
sudo yum install -y certbot python3-certbot-nginx
假设你的域名是 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
编辑:
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;
}
}
sudo nginx -t
sudo systemctl restart nginx
Jenkins 管理界面:
Manage Jenkins → Configure System
设置:
https://jenkins.example.com/
适合无 Nginx 的环境。
keytool -genkeypair \
-alias jenkins \
-keyalg RSA \
-keysize 2048 \
-validity 365 \
-keystore /etc/jenkins/jenkins.jks
编辑:
sudo vi /etc/sysconfig/jenkins
添加:
JENKINS_ARGS="--httpsPort=8443 --httpsKeyStore=/etc/jenkins/jenkins.jks --httpsKeyStorePassword=你的密码"
sudo systemctl restart jenkins
访问:
https://服务器IP: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 | ⭐⭐⭐ | 简单但不够灵活 |
如果你愿意,我可以:
你目前是 公网域名 还是 内网环境?