温馨提示×

Linux版GitLab怎样配置SSL证书

小樊
45
2025-11-30 19:18:53
栏目: 云计算

在Linux版GitLab中配置SSL证书可以确保通过HTTPS进行安全通信。以下是详细的步骤指南:

1. 获取SSL证书

你可以从多个来源获取SSL证书,包括Let’s Encrypt、商业CA或自签名证书。

使用Let’s Encrypt

Let’s Encrypt提供免费的SSL证书。你可以使用Certbot来获取和续订证书。

  1. 安装Certbot

    sudo apt update
    sudo apt install certbot python3-certbot-nginx
    
  2. 获取证书

    sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
    

    按照提示完成证书的获取和配置。

2. 配置GitLab使用SSL证书

GitLab使用Nginx作为Web服务器,因此你需要修改Nginx配置文件来使用SSL证书。

  1. 编辑Nginx配置文件: 打开GitLab的Nginx配置文件,通常位于 /etc/gitlab/gitlab.rb

    sudo nano /etc/gitlab/gitlab.rb
    
  2. 配置SSL: 找到并修改以下配置项:

    nginx['listen_port'] = 443
    nginx['ssl_certificate'] = "/etc/letsencrypt/live/yourdomain.com/fullchain.pem"
    nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/yourdomain.com/privkey.pem"
    nginx['ssl_protocols'] = "TLSv1.2 TLSv1.3"
    nginx['ssl_ciphers'] = "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:!DSS"
    

    确保路径指向你从Let’s Encrypt获取的证书文件。

  3. 重新配置GitLab: 保存并关闭文件后,运行以下命令重新配置GitLab:

    sudo gitlab-ctl reconfigure
    

3. 验证配置

确保Nginx正确加载了SSL证书,并且GitLab可以通过HTTPS访问。

  1. 检查Nginx状态

    sudo gitlab-ctl status nginx
    
  2. 访问GitLab: 打开浏览器,访问 https://yourdomain.com,确保页面显示正常并且浏览器显示安全连接。

4. 自动续订证书

Let’s Encrypt证书通常每90天过期一次。你可以使用Certbot的自动续订功能来确保证书始终有效。

  1. 设置自动续订: Certbot会自动设置一个cron任务或systemd定时器来续订证书。你可以手动测试续订过程:

    sudo certbot renew --dry-run
    

    如果一切正常,Certbot会续订证书并更新Nginx配置。

通过以上步骤,你应该能够在Linux版GitLab上成功配置SSL证书,确保安全通信。

0