在Ubuntu 24.04安装指定版本Jenkins并启用HTTPS求助
在Ubuntu 24.04安装Jenkins 2.479.3并启用HTTPS的完整步骤
一、安装指定版本Jenkins
- 添加Jenkins官方源密钥
curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null
- 添加Jenkins源到系统源列表
echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null
- 更新软件包缓存
sudo apt update
- 安装Jenkins 2.479.3
sudo apt install jenkins=2.479.3
- 验证安装版本
jenkins --version
- 停止Jenkins服务,准备HTTPS配置
sudo systemctl stop jenkins
二、配置HTTPS
方式1:自签名证书(测试环境)
- 创建证书存储目录并生成自签名证书
sudo mkdir -p /var/lib/jenkins/certs sudo openssl req -x509 -newkey rsa:4096 -keyout /var/lib/jenkins/certs/jenkins.key -out /var/lib/jenkins/certs/jenkins.crt -days 365 -nodes
按提示填写信息(测试环境可随意填写)。
- 将证书转换为Jenkins支持的PKCS12格式
sudo openssl pkcs12 -export -in /var/lib/jenkins/certs/jenkins.crt -inkey /var/lib/jenkins/certs/jenkins.key -out /var/lib/jenkins/certs/jenkins.p12 -name jenkins
设置密码并牢记,后续配置会用到。
- 修改证书权限,确保Jenkins可读取
sudo chown jenkins:jenkins /var/lib/jenkins/certs/* sudo chmod 600 /var/lib/jenkins/certs/jenkins.key /var/lib/jenkins/certs/jenkins.p12
- 修改Jenkins配置文件
/etc/default/jenkins
编辑文件,找到JENKINS_ARGS行,替换为以下内容(替换your-password为你设置的PKCS12密码):
JENKINS_ARGS="--webroot=/var/cache/jenkins/war --httpPort=-1 --httpsPort=443 --httpsKeyStore=/var/lib/jenkins/certs/jenkins.p12 --httpsKeyStorePassword=your-password"
说明:
--httpPort=-1表示禁用HTTP访问,仅启用HTTPS;若443端口被占用,可改为8443等其他端口。
- 重启Jenkins并验证
sudo systemctl daemon-reload sudo systemctl start jenkins
访问https://你的服务器IP,浏览器提示证书不安全时选择继续访问即可。
方式2:Let's Encrypt证书(生产环境)
- 安装Certbot工具
sudo apt install certbot
- 获取Let's Encrypt证书(需暂停Jenkins释放80端口)
sudo systemctl stop jenkins sudo certbot certonly --standalone -d 你的域名.com
按提示完成域名验证,证书将生成在/etc/letsencrypt/live/你的域名.com/目录下。
- 将证书转换为PKCS12格式
sudo openssl pkcs12 -export -in /etc/letsencrypt/live/你的域名.com/fullchain.pem -inkey /etc/letsencrypt/live/你的域名.com/privkey.pem -out /var/lib/jenkins/certs/jenkins.p12 -name jenkins
设置密码并牢记。
- 修改证书权限
sudo mkdir -p /var/lib/jenkins/certs sudo chown jenkins:jenkins /var/lib/jenkins/certs/jenkins.p12 sudo chmod 600 /var/lib/jenkins/certs/jenkins.p12
- 修改Jenkins配置文件
/etc/default/jenkins
替换JENKINS_ARGS行(替换your-password为PKCS12密码):
JENKINS_ARGS="--webroot=/var/cache/jenkins/war --httpPort=-1 --httpsPort=443 --httpsKeyStore=/var/lib/jenkins/certs/jenkins.p12 --httpsKeyStorePassword=your-password"
- 配置证书自动续期
添加Crontab任务,每天凌晨3点自动续期证书并重启Jenkins:
sudo crontab -e
添加以下内容:
0 3 * * * certbot renew --quiet && systemctl restart jenkins
- 重启Jenkins并验证
sudo systemctl daemon-reload sudo systemctl start jenkins
访问https://你的域名.com,确认证书正常生效。
三、常见问题排查
- 端口占用:用
sudo lsof -i :443检查443端口是否被占用,若占用则更换HTTPS端口。 - 日志排查:查看Jenkins日志定位错误:
sudo journalctl -u jenkins -f - 防火墙设置:开放HTTPS端口:
sudo ufw allow 443/tcp - 权限问题:确保Jenkins用户对证书文件拥有读取权限,否则会导致启动失败。
内容的提问来源于stack exchange,提问作者Need Solution
相关产品推荐
相关产品推荐

