centos

如何在CentOS上配置GitLab的SSL证书

小樊
34
2025-08-06 11:53:23
栏目: 云计算

在CentOS上配置GitLab的SSL证书可以通过多种方式实现,包括使用Let’s Encrypt免费证书、购买SSL证书或使用自签名证书。以下是使用Let’s Encrypt免费证书的详细步骤:

前提条件

  1. CentOS 7或更高版本:确保你的系统是最新的。
  2. GitLab已安装:如果还没有安装GitLab,请先按照官方文档进行安装。
  3. Nginx或Apache:GitLab通常使用Nginx作为Web服务器。确保Nginx已安装并运行。

步骤

1. 安装Certbot

Certbot是一个自动化的工具,用于获取和续订Let’s Encrypt证书。

sudo yum install epel-release
sudo yum install certbot python2-certbot-nginx

2. 获取SSL证书

使用Certbot获取SSL证书。假设你的GitLab域名是gitlab.example.com

sudo certbot --nginx -d gitlab.example.com

在提示时,选择以下选项:

Certbot会自动修改Nginx配置文件,并添加SSL证书的相关配置。

3. 验证证书

Certbot会自动验证你的域名所有权。如果一切顺利,你会看到类似以下的输出:

Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/gitlab.example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/gitlab.example.com/privkey.pem

4. 配置GitLab使用SSL

确保GitLab配置文件/etc/gitlab/gitlab.rb中启用了SSL。

打开文件:

sudo nano /etc/gitlab/gitlab.rb

找到并修改以下行:

external_url 'https://gitlab.example.com'

确保URL是你的GitLab实例的完整URL,并且使用了HTTPS。

5. 重新配置和重启GitLab

保存并关闭文件后,运行以下命令以应用更改:

sudo gitlab-ctl reconfigure

然后重启GitLab服务:

sudo gitlab-ctl restart

6. 验证SSL配置

打开浏览器,访问https://gitlab.example.com,你应该能看到一个安全的连接(锁形图标)。

自动续订证书

Let’s Encrypt证书每90天需要续订一次。Certbot会自动设置一个cron任务来处理续订。你可以手动测试续订过程:

sudo certbot renew --dry-run

如果没有错误,Certbot会在证书到期前自动续订。

使用购买或自签名证书

如果你选择购买SSL证书或使用自签名证书,步骤会有所不同。你需要手动将证书和私钥文件放置在适当的位置,并在Nginx配置中引用它们。

例如,假设你的证书文件是/etc/ssl/certs/gitlab.example.com.crt,私钥文件是/etc/ssl/private/gitlab.example.com.key,你可以修改Nginx配置文件如下:

server {
    listen 443 ssl;
    server_name gitlab.example.com;

    ssl_certificate /etc/ssl/certs/gitlab.example.com.crt;
    ssl_certificate_key /etc/ssl/private/gitlab.example.com.key;

    # 其他配置...
}

然后重新加载Nginx配置:

sudo systemctl reload nginx

通过以上步骤,你应该能够在CentOS上成功配置GitLab的SSL证书。

0
看了该问题的人还看了