关于gitlab:在极狐GitLab-配置-SSLhttps

8次阅读

共计 2337 个字符,预计需要花费 6 分钟才能阅读完成。

本文作者 徐晓伟

阐明

  1. 极狐 GitLab https 应用的是 nginx 实现的
  2. 本文应用的域名是 IP 192.168.80.14(起因:如果应用域名,必须领有这个域名的所有权,并减少解析才能够,要不然在 Docker 容器中,无奈应用域名检出代码,因为依据域名找不到 DNS 记录)
  3. 如果应用本人生成的证书,git 检出代码、推送代码会失败,起因是无奈验证证书的有效性,能够应用名  git config --global http.sslVerify false  禁用 ssl 的验证

生成证书

  1. 如果有域名,能够应用域名申请收费的证书,下载 Nginx 证书即可

    1. 阿里云 SSL(https)证书收费申请
    2. 腾讯云 SSL(https)证书收费申请
    3. 华为云 SSL(https)证书收费申请
    4. 百度云 SSL(https)证书收费申请
  2. 如果没有域名,可应用下列命令在 CentOS 上生成
  3. 创立证书文件夹

    mkdir -p /etc/gitlab/ssl
    cd /etc/gitlab/ssl
  4. 生成证书

    # 以 CentOS 为例
    # 如果呈现 -bash: openssl: command not found,请装置 openssl:yum -y install openssl
    
    # 生成指定位数的 RSA 私钥:ca.key
    openssl genrsa -out ca.key 2048
    
    # 依据 RSA 私钥,生成 crt 证书:ca.crt
    # CN:设置你要应用的域名
    # -utf8:反对中文
    openssl req -new -x509 -days 3650 -key ca.key -subj "/C=CN/ST= 山东 /L= 青岛 /O= 徐晓伟工作室 /OU= 徐晓伟工作室 /CN=192.168.80.14/emailAddress=xuxiaowei@xuxiaowei.com.cn" -out ca.crt -utf8
    # openssl req -new -x509 -days 3650 -key ca.key -subj "/C=CN/ST= 山东 /L= 青岛 /O= 徐晓伟工作室 /OU= 徐晓伟工作室 /CN=gitlab.example.com/emailAddress=xuxiaowei@xuxiaowei.com.cn" -out ca.crt -utf8
    
    # 生成 server.csr、server.key
    # CN:设置你要应用的域名
    # -utf8:反对中文
    openssl req -newkey rsa:2048 -nodes -keyout server.key -subj "/C=CN/ST= 山东 /L= 青岛 /O= 徐晓伟工作室 /CN=192.168.80.14" -out server.csr -utf8
    # openssl req -newkey rsa:2048 -nodes -keyout server.key -subj "/C=CN/ST= 山东 /L= 青岛 /O= 徐晓伟工作室 /CN=gitlab.example.com" -out server.csr -utf8
    
    # 生成 ca.srl、server.crt
    # subjectAltName:设置 DNS、IP
    openssl x509 -req -extfile <(printf "subjectAltName=IP:192.168.80.14") -days 3650 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt
    # openssl x509 -req -extfile <(printf "subjectAltName=DNS:gitlab.example.com") -days 3650 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt
  5. 最终生成了:ca.crt、ca.key、ca.srl、server.crt、server.csr、server.key,其中 server.crt 和 server.key 就是 Nginx 应用的证书

配置 https​

  1. 装置 vim

    yum -y install vim
  2. 编辑 gitlab.rb 文件

    vim /etc/gitlab/gitlab.rb
  3. 批改内容如下

    # 填写你的域名,留神是 https
    external_url 'https://192.168.80.14'
    # 如果应用的是域名,填写域名
    # external_url 'https://gitlab.example.com'
    
    # 对应上方域名的证书
    # 将证书放在 /etc/gitlab/ssl 文件夹中
    # 如果应用的是阿里云等平台颁发的证书,此处能够应用 Nginx 证书,ssl_certificate 应用 .pem 文件
    nginx['ssl_certificate'] = "/etc/gitlab/ssl/server.crt"
    nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/server.key"
    
    # http 重定向到 https
    nginx['redirect_http_to_https'] = true
    
    # 禁用 Let's Encrypt 颁发证书
    letsencrypt['enable'] = false
    
    # 限度 GitLab 实例应用的 IP(在应用域名时应用,留神浏览器缓存问题)# nginx['listen_addresses'] = ['192.168.80.14']
  4. 重新配置 GitLab

    sudo gitlab-ctl reconfigure
  5. 查看 GitLab 各服务的状态

    sudo gitlab-ctl status
  6. 日志

    sudo gitlab-ctl tail nginx
  7. 批改 DNS(或者在本地 hosts 将域名指向 GitLab 服务器 IP),拜访 https://GitLab 域名  即可(如果应用本人生成的证书,可能会提醒  您的连贯不是私密连贯 **,疏忽即可)。
正文完
 0