首页 > 其他分享 >在极狐GitLab 配置 SSL/https

在极狐GitLab 配置 SSL/https

时间:2024-02-29 13:22:07浏览次数:20  
标签:gitlab https 证书 GitLab server 极狐 域名 key

本文作者 徐晓伟

说明

  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/[email protected]" -out ca.crt -utf8
    # openssl req -new -x509 -days 3650 -key ca.key -subj "/C=CN/ST=山东/L=青岛/O=徐晓伟工作室/OU=徐晓伟工作室/CN=gitlab.example.com/[email protected]" -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域名 即可(如果使用自己生成的证书,可能会提示* *您的连接不是私密连接**,忽略即可)。

标签:gitlab,https,证书,GitLab,server,极狐,域名,key
From: https://www.cnblogs.com/jihugitlab/p/18043464

相关文章

  • 国产数据库兼容性认证再下两城,极狐GitLab 国产适配更进一步
    近日,极狐GitLab与两大国产数据库TDSQL和人大金仓完成兼容性认证。极狐GitLab在国产化适配、国产化生态建设上有了进一步的发展。极狐GitLab团队分别和TDSQL和人大金仓数据库团队做了严格的测试验证,完成了这两大国产数据库和极狐GitLab企业级一体化DevOps平台的兼容性认......
  • 解决npm 错误:request to https://registry.npm.taobao.org/ failed, reason: certific
    今天,启动一个纯前端的老项目,安装依赖时报错。npm错误:requesttohttps://registry.npm.taobao.org/failed,reason:certificatehasexpired从报错信息可看出,以前经常使用的淘宝镜像https://registry.npm.taobao.org/的证书过期了,就是该域名的备案证书过期了,但似乎直到2024......
  • HTTPS 问题
    问题:什么是HTTPS?HTTPS和HTTP的区别是什么?HTTPS的连接过程?HTTPS的加密方式是什么,对称加密还是非对称加密,为什么这样设计?HTTPS绝对安全吗?HTTPS能被抓包吗?如何防止HTTPS被抓包HTTP和HTTPS是什么?有什么区别HTTP:(HyperTextTransferProtocol)超文本传输协议HTTPS:(Hyp......
  • 解决HttpServletRequest调用getInputStream()方法读取参数只能获取一次问题
    1、问题描述由于后端接口获取前端传过的参数是通过HttpServletRequest接收获取的。现有一需求需要在接口调用之前拦截接口进行业务处理。在拦截类中调用getInputStream()获取参数之后,在接口方法里获取参数为空。2、解决方法自定义一个过滤器过滤所有请求,使用HttpServletRequest......
  • 制作docker方式执行Gitlab Runner所需要的镜像
    背景知识启动GitlabRunner时,使用Gitlab提供的官方镜像gitlab/gitlab-runner:latest即可。Runner以容器的方式启动以后,根据前文我们注册到Gitlab服务器,然后就可以等着执行“流水线”里面的“作业”了。执行“作业”是要启动另外的容器的,在这个容器里面才能运行dotnetbuild、do......
  • acme 手工 dns 泛域名https证书
    1acme.sh--issue-dtjjmcs.com-d*.tjjmcs.com--dns--yes-I-know-dns-manual-mode-enough-go-ahead-please2acme.sh--renew-dtjjmcs.com-d*.tjjmcs.com--yes-I-know-dns-manual-mode-enough-go-ahead-pleaseapacheacme.sh--install-cert-dtjjmcs.com--......
  • npm报错:request to https://registry.npm.taobao.org failed, reason certificate has
    一、报错问题:提示淘宝镜像过期二、错误提示已经告诉原因是淘宝镜像过期了!其实,早在2021年,淘宝就发文称,npm淘宝镜像已经从registry.npm.taobao.org切换到了registry.npmmirror.com。旧域名也将于2022年5月31日停止服务(不过,直到今天HTTPS证书到期才真正不能用了)三......
  • Gitlab 16.9.0 用Access Token注册Gitlab Runner
    升级到当前最新版Gitlab之后在“管理中心”的“CI/CD”--“Runners”下,提示以前的那种注册令牌的方式已经过时了。点击右上角按钮后,弹出对话框如下:上图画红框的信息,deprecated是不赞成,反对的意思。就是说注册令牌已经被放弃了,未来将会不支持。暂时还是可以用。点击蓝色按钮:N......
  • npm ERR! request to https://registry.npm.taobao.org/vue-router failed, reason: c
    npminstall报错了!看提示是证书到期,究其原因是淘宝镜像的地址换了。旧:https://registry.npm.taobao.org/新:https://registry.npmmirror.com/#清除缓存npmcacheclean--force#验证缓存是否清除干净npmverifycache#更改淘宝镜像npmconfigsetregistryhttps://r......
  • 禁止edge自动将http转换为https的设置
    1.输入edge://flags/#edge-automatic-https,将AutomaticHTTPS设置为disabled。 2.输入edge://settings/searchFilters,关闭“使用我键入的字符向我显示此设备上的历史记录、收藏夹和其他数据的建议”此功能变能够关闭自动跳转改功能。 ......