温馨提示×

怎样给Debian的Jenkins加证书

小樊
39
2026-10-02 02:13:37
栏目: 智能运维

在 Debian 上给 Jenkins 加证书,通常有两种常见场景:

  1. 给 Jenkins 启用 HTTPS(Web 访问用证书)
  2. 让 Jenkins 信任内部 CA / 自签证书(访问 Git、Docker、HTTPS 服务等)

下面分别说明。


一、给 Jenkins Web 启用 HTTPS 证书(Debian)

方式 1:用 Nginx / Apache 反向代理(推荐)

最简单、最安全。

1. 安装 Nginx

sudo apt update
sudo apt install nginx

2. 申请证书(以 Let’s Encrypt 为例)

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d jenkins.example.com

3. 配置反向代理

server {
    listen 80;
    server_name jenkins.example.com;

    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;
    }
}

4. 重启

sudo systemctl restart nginx

✅ Jenkins 本身仍用 HTTP(8080),由 Nginx 提供 HTTPS。


方式 2:Jenkins 直接使用证书(不推荐新手)

编辑:

sudo nano /etc/default/jenkins

修改:

JENKINS_ARGS="--httpsPort=8443 --httpsCertificate=/etc/ssl/jenkins/jenkins.crt --httpsPrivateKey=/etc/ssl/jenkins/jenkins.key"

重启:

sudo systemctl restart jenkins

⚠️ 证书必须是 Jenkins 能读取的格式(PEM)。


二、让 Jenkins 信任自签 CA 证书

如果你访问 Git / Harbor / 私有 HTTPS 报:

sun.security.validator.ValidatorException: PKIX path building failed

1. 找到 Java 路径

which java
# 或
readlink -f $(which java)

2. 导入 CA 证书

sudo keytool -import -trustcacerts \
  -alias myca \
  -file /path/to/ca.crt \
  -keystore $JAVA_HOME/lib/security/cacerts \
  -storepass changeit

3. 重启 Jenkins

sudo systemctl restart jenkins

三、Docker 中的 Jenkins(补充)

如果是 Docker 启动:

docker run -d \
  -p 8080:8080 \
  -v /path/cacerts:/etc/ssl/certs \
  jenkins/jenkins

或在 Dockerfile 里导入 CA。


四、快速排查

  • 端口没开 → ufw allow 443
  • 证书权限 → chmod 644
  • 查看日志 → journalctl -u jenkins

如果你能告诉我:

  • Jenkins 是 裸机 / Docker / K8s
  • 证书是 Let’s Encrypt / 自签 / 公司 CA
  • 用途是 Web HTTPS 还是 访问 Git

我可以给你精确步骤。

0 踩