在 CentOS 上部署 GitLab 并配置 SSL(HTTPS),常见有 两种方式:
sudo yum install -y curl policycoreutils-python openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
把证书放到:
/etc/gitlab/ssl/
例如:
/etc/gitlab/ssl/gitlab.example.com.crt
/etc/gitlab/ssl/gitlab.example.com.key
证书可以是:
- 免费 Let’s Encrypt
- 自建 CA
- 商业证书
编辑:
sudo vi /etc/gitlab/gitlab.rb
修改内容:
external_url 'https://gitlab.example.com'
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.example.com.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.example.com.key"
sudo gitlab-ctl reconfigure
访问:
https://gitlab.example.com
external_url 'https://gitlab.example.com'
letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['admin@example.com']
sudo gitlab-ctl reconfigure
GitLab 会自动申请并配置证书。
如果你已有 Nginx:
server {
listen 443 ssl;
server_name gitlab.example.com;
ssl_certificate /etc/nginx/ssl/gitlab.crt;
ssl_certificate_key /etc/nginx/ssl/gitlab.key;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
GitLab 关闭自带 Nginx:
nginx['enable'] = false
GitLab 默认:
sudo setsebool -P httpd_can_network_connect 1
✅ CentOS + GitLab 自带 Nginx + Let’s Encrypt
如果你愿意,我可以: