在 Ubuntu 上给 Jenkins 配置 SSL 常见有 两种方式:
下面以 Nginx + Let’s Encrypt(免费证书) 为例,最常用、最稳妥。
jenkins.example.com)sudo apt update
sudo apt install nginx -y
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d jenkins.example.com
按提示输入邮箱,同意条款即可。
编辑 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 → 系统管理 → 系统配置
设置:
https://jenkins.example.com/否则 Webhook、代理、邮件会出错。
sudo certbot renew --dry-run
certbot 默认已配置 systemd 定时任务。
java -jar jenkins.war \
--httpPort=-1 \
--httpsPort=8443 \
--httpsCertificate=/path/cert.pem \
--httpsPrivateKey=/path/key.pem
⚠️ 维护复杂,不建议生产用。
ufw allow 443X-Forwarded-Proto如果你愿意,我可以:
你现在是 物理机 / Docker / 云服务器?