在 Ubuntu 上给 Jenkins 配置 HTTPS,常见有 两种主流方式:
sudo apt update
sudo apt install nginx
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d jenkins.yourdomain.com
sudo openssl req -x509 -nodes -days 365 \
-newkey rsa:2048 \
-keyout /etc/ssl/private/jenkins.key \
-out /etc/ssl/certs/jenkins.crt
编辑:
sudo nano /etc/nginx/sites-available/jenkins
示例配置(Let’s Encrypt):
server {
listen 80;
server_name jenkins.yourdomain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name jenkins.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/jenkins.yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/jenkins.yourdomain.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 → Manage Jenkins → Configure System
https://jenkins.yourdomain.comsudo nano /etc/default/jenkins
添加:
JENKINS_ARGS="--httpPort=-1 --httpsPort=8443 \
--httpsCertificate=/etc/ssl/certs/jenkins.crt \
--httpsPrivateKey=/etc/ssl/private/jenkins.key"
重启:
sudo systemctl restart jenkins
访问:
https://<server-ip>:8443
⚠️ 缺点:证书更新麻烦,不支持 80 自动跳转
| 场景 | 推荐方式 |
|---|---|
| 生产环境 | Nginx + Let’s Encrypt |
| 内网/测试 | Nginx + 自签证书 |
| 简单测试 | Jenkins 直连 HTTPS |
如果你愿意,可以告诉我:
我可以给你更精确的步骤。