Jenkins从HTTP切换HTTPS后无法访问的问题求助
Jenkins 访问故障排查与修复方案
方案一:快速恢复HTTP访问(最简方案)
如果仅需快速恢复Jenkins访问,直接还原HTTP配置即可:
- 编辑
/etc/default/jenkins文件,修改JENKINS_ARGS参数,移除HTTPS相关配置,恢复HTTP端口:
JENKINS_ARGS="--webroot=/var/cache/$NAME/war --httpPort=9090"
- 重启Jenkins服务生效:
sudo systemctl restart jenkins
- 访问
http://mydomain:9090验证访问正常。
方案二:正确配置HTTPS访问(基于Let's Encrypt证书)
若需保留HTTPS,需确保证书转换与Jenkins配置匹配:
1. 确认Certbot证书位置
Certbot生成的证书默认存储在/etc/letsencrypt/live/mydomain/,核心文件:
fullchain.pem:完整证书链privkey.pem:私钥文件
2. 将PEM证书转换为Jenkins支持的JKS格式
Jenkins不直接支持PEM,需通过工具转换:
第一步:生成PKCS12格式文件
sudo openssl pkcs12 -export \ -in /etc/letsencrypt/live/mydomain/fullchain.pem \ -inkey /etc/letsencrypt/live/mydomain/privkey.pem \ -out /var/lib/jenkins/jenkins.p12 \ -name jenkins \ -password pass:自定义密码
第二步:转换为JKS格式
sudo keytool -importkeystore \ -deststorepass 自定义密码 \ -destkeypass 自定义密码 \ -destkeystore /var/lib/jenkins/jenkins.jks \ -srckeystore /var/lib/jenkins/jenkins.p12 \ -srcstoretype PKCS12 \ -srcstorepass 自定义密码 \ -alias jenkins
第三步:修复证书文件权限
确保Jenkins用户能读取证书:
sudo chown jenkins:jenkins /var/lib/jenkins/jenkins.jks sudo chmod 600 /var/lib/jenkins/jenkins.jks
3. 修正Jenkins HTTPS配置
编辑/etc/default/jenkins,调整JENKINS_ARGS参数:
# 示例:关闭HTTP,使用9090端口提供HTTPS服务 JENKINS_ARGS="--webroot=/var/cache/$NAME/war --httpPort=-1 --httpsPort=9090 --httpsKeyStore=/var/lib/jenkins/jenkins.jks --httpsKeyStorePassword=自定义密码"
若要使用标准HTTPS端口443,需确保Jenkins拥有特权端口绑定权限,可通过
authbind工具实现,或改用8443等非特权端口。
4. 重启服务并验证
sudo systemctl restart jenkins
访问https://mydomain:9090验证访问正常。
常见故障排查
- 查看Jenkins日志定位错误:
sudo tail -f /var/log/jenkins/jenkins.log,重点关注证书加载失败、权限异常等日志信息 - 检查端口占用情况:
sudo lsof -i :9090,若端口被其他服务占用,更换未使用端口 - 确认防火墙规则:确保9090/443端口已对外开放
内容的提问来源于stack exchange,提问作者Seol Heo
相关产品推荐
相关产品推荐

