You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux环境下Jenkins启动报错:Unrecognized option: --httpsCertificate

问题原因

Jenkins 2.361.4 已移除了--httpsCertificate和--httpsPrivateKey这两个启动参数,这就是你遇到"Unrecognized option"错误的核心原因。新版本Jenkins调整了SSL配置逻辑,不再支持直接指定证书/密钥文件的方式。

结合你已有Nginx SSL代理的场景,推荐以下两种解决方案:


方案一:用Nginx处理SSL,Jenkins仅监听本地HTTP(推荐)

既然已经部署了Nginx代理,完全不需要让Jenkins自身处理SSL,只需让Jenkins监听本地HTTP端口,由Nginx负责对外提供HTTPS服务即可,这也是反向代理的最佳实践。

  1. 修改Jenkins服务配置
    编辑/usr/lib/systemd/system/jenkins.service,将[Service]段的配置改为:
[Service]
Type=notify
NotifyAccess=main
ExecStart=/usr/bin/jenkins --httpPort=8080 --httpListenAddress=127.0.0.1
Restart=on-failure
SuccessExitStatus=143

或者用Environment方式配置:

[Service]
Type=notify
NotifyAccess=main
Environment="JENKINS_OPTS= --httpPort=8080 --httpListenAddress=127.0.0.1"
Restart=on-failure
SuccessExitStatus=143
  1. 重启Jenkins服务
systemctl daemon-reload
systemctl restart jenkins
  1. 配置Nginx反向代理
    在Nginx的站点配置文件中添加以下内容(替换your-domain.com为你的实际域名):
server {
    listen 443 ssl;
    server_name your-domain.com;

    ssl_certificate /opt/certs/project.crt;
    ssl_certificate_key /opt/certs/project.key;

    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;
    }
}
  1. 验证Nginx配置并重启
nginx -t
systemctl restart nginx

方案二:让Jenkins直接提供SSL服务(需转换证书格式)

如果一定要让Jenkins自身处理SSL,需要将你的证书和密钥转换为JVM支持的JKS密钥库格式:

  1. 将证书和密钥转为PKCS12格式
openssl pkcs12 -export -in /opt/certs/project.crt -inkey /opt/certs/project.key -out /opt/certs/jenkins.p12 -name jenkins

执行时会要求设置PKCS12文件的密码,请记录下来。

  1. 将PKCS12转为JKS密钥库
keytool -importkeystore -deststorepass <你的密钥库密码> -destkeypass <你的密钥密码> -destkeystore /opt/certs/jenkins.jks -srckeystore /opt/certs/jenkins.p12 -srcstoretype PKCS12 -srcstorepass <刚才设置的PKCS12密码> -alias jenkins
  1. 修改Jenkins服务配置
    编辑/usr/lib/systemd/system/jenkins.service,更新[Service]段:
[Service]
Type=notify
NotifyAccess=main
ExecStart=/usr/bin/jenkins --httpPort=-1 --httpsPort=8080 --httpsKeyStore=/opt/certs/jenkins.jks --httpsKeyStorePassword=<你的密钥库密码>
Restart=on-failure
SuccessExitStatus=143
  1. 设置密钥库文件权限
chown jenkins:jenkins /opt/certs/jenkins.jks
chmod 600 /opt/certs/jenkins.jks
  1. 重启Jenkins服务
systemctl daemon-reload
systemctl restart jenkins

额外说明

你之前将证书导入JVM系统cacerts的操作是不必要的,无论采用哪种方案,都不需要这一步骤。

内容的提问来源于stack exchange,提问作者Prageeth Athulathmudali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 19:55:31