当前位置:   article > 正文

Gitlab/SSL证书/内网部署/Go项目使用示例_自建的gitlab ca-certificates.crt证书

自建的gitlab ca-certificates.crt证书

1. 安装docker

Install Docker Engine on Debian | Docker Documentation

1.1 修改主机SSH端口

        1.将SSH的默认端口22,修改为其他端口.因为GitLab需要用到22端口

1.2 修改NGINX的配置

  1. vim /etc/nginx/nginx.conf #!!!!注意,这里不是/etc/nginx/conf.d/default.conf
  2. #添加如下代码
  3. stream {
  4. upstream stream_backend {
  5. server 192.168.0.2:22;
  6. }
  7. server {
  8. listen 22;
  9. proxy_pass stream_backend;
  10. }
  11. }

2.安装gitlab

GitLab Docker images | GitLab

如果内网IP地址为 192.168.0.2

--hostname gitlab.example.com # 改为内网地址 例如:192.168.0.2

3. 修改配置

vim /home/gitlab/config/gitlab.rb
  1. external_url 'https://192.168.0.2'
  2. nginx['redirect_http_to_https'] = true
  3. nginx['ssl_certificate'] = "/etc/gitlab/ssl/192.168.0.2.crt" #别管有没有,先配置
  4. nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/192.168.0.2.key" #别管有没有,先配置
  5. gitlab_rails['time_zone'] = 'Asia/Shanghai'
  6. sidekiq['concurrency'] = 8
  7. postgresql['shared_buffers'] = "128MB"
  8. postgresql['max_worker_processes'] = 4
  9. prometheus_monitoring['enable'] = false

4.创建证书

vim /home/gitlab/config/ssl/generate_crt.sh #编写生成证书脚本
  1. #!/bin/sh
  2. # 创建证书:
  3. read -p "输入你的内网地址: " DOMAIN
  4. SUBJECT="/C=ZH/ST=Home/L=$DOMAIN/O=$DOMAIN/OU=$DOMAIN/CN=$DOMAIN"
  5. openssl req -subj $SUBJECT -sha256 -newkey rsa:2048 -nodes -keyout $DOMAIN.key -x509 -days 3650 -out $DOMAIN.crt -config ./openssl.cnf -extensions v3_req
  1. docker cp gitlab:/usr/lib/ssl/openssl.cnf openssl.cnf //复制容器的默认配置
  2. vim openssl.cnf #修改配置
  1. req_extensions = v3_req #把这个配置打开
  2. [ v3_req ]
  3. # Extensions to add to a certificate request
  4. basicConstraints = CA:FALSE
  5. keyUsage = nonRepudiation, digitalSignature, keyEncipherment
  6. subjectAltName = @alt_names # 添加一行配置
  7. [ alt_names ]# 添加一行配置
  8. IP.1 = 192.168.0.2 # 添加一行配置
  9. #DNS.1 = a.com #如果是内网,没有域名的,不能添加DNS.否则证书出错
  1. chmod 775 ./generate_crt.sh #给权限
  2. ./generate_crt.sh #生成证书
docker restart gitlab #重启容器

5.windows 安装证书/免密登陆

  1. scp -P23 root@192.168.0.2:/home/gitlab/config/ssl/192.168.0.2.crt D:\a.cer#CMD命令行下载证书到windows
  2. // 不检查证书
  3. git config --global http.sslVerify false
  4. //生成密匙
  5. ssh-keygen -t rsa
  6. // 把id_rsa.pub 的内容复制到gitlab
  7. // 登记一次密匙
  8. ssh root@192.168.0.2

把它导入到"受信任的根证书颁发机构"中

 6.配置gitlab

docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password #获取gitlab管理员root的密码

可访问性与控制中修改URL 

 7.Golang 项目使用示例

创建新用户 golanguser=>使用新用户登录gitlab=>新用户创建两个新项目: test1/test2

Widows配置环境变量  

  1. # 运行CMD命令 , 配置环境变量
  2. setx CGO_ENABLED 1
  3. setx GOOS windows
  4. setx GOARCH amd64
  5. setx CC gcc
  6. setx GOPATH D:\DevManager #我这里是这个位置
  7. setx GOPROXY https://goproxy.cn,direct #使用代理
  8. setx GO111MODULE on
  9. setx GOINSECURE 192.168.0.2#指定不检查证书的地址
  10. setx GOPRIVATE 192.168.0.2 #指定不使用代理的地址
  11. setx GOROOT D:\go #我这里是这个位置
  1. # 运行CMD命令,下拉test项目
  2. mkdir %GOPATH%\src\golanguser\192.168.0.2
  3. cd %GOPATH%\src\golanguser\192.168.0.2
  4. D: #切换到D盘,我这里是D盘
  5. git clone https://192.168.0.2/golanguser/test1.git
  6. git clone https://192.168.0.2/golanguser/test2.git
  1. //在test1文件夹中,新建test1.go文件
  2. package test1
  3. import (
  4. "fmt"
  5. )
  6. //首字母要大写
  7. func Hello(){
  8. fmt.Println("我是测试1")
  9. }
  1. //在test2项目文件夹中,创建一个test2.go文件
  2. package test2
  3. import(
  4. "192.168.0.2/golanguser/test1" #这里不会走代理
  5. "fmt"
  6. "github.com/dodoao/gt" #这里会走代理
  7. )
  8. func test2(){
  9. test1.Hello()
  10. fmt.Println(gt.Get_current_directory())
  11. }
  1. #运行CMD命令,初始化
  2. cd %GOPATH%/src/192.168.0.2/golanguser/test1 #
  3. D: #切换到D盘,我这里是D盘
  4. go mod init
  5. go get -d -v ./... #循环下载所有依赖
  6. cd %GOPATH%/src/192.168.0.2/golanguser/test2 #
  7. D: #切换到D盘,我这里是D盘
  8. go mod init
  9. go get -d -v ./... #循环下载所有依赖,只要这里成功完成了,就成功了

基本用法

       

git clone https://username:password@192.168.248.161/xiaomeing/dba.git

如果使用局域网,可以修改成如下:

Windows客户端改hosts文件,Debian 端也需要修改hosts文件指定域名解析 

  1. server {
  2. listen 443 ssl;
  3. server_name gitlab.dodo.com;
  4. ssl on;
  5. ssl_certificate /etc/nginx/cert/gitlab.dodo.com.crt;
  6. ssl_certificate_key /etc/nginx/cert/gitlab.dodo.com.key;
  7. ssl_session_timeout 5m;
  8. ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
  9. ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  10. ssl_prefer_server_ciphers on;
  11. location / {
  12. proxy_redirect off;
  13. proxy_set_header Host $host;
  14. proxy_set_header X-Real-IP $remote_addr;
  15. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  16. proxy_pass https://172.19.12.3; # 这里设置你要代理的ip+端口
  17. add_header Access-Control-Allow-Origin *;#根据自己需求设置
  18. }
  19. client_max_body_size 50m;
  20. types_hash_max_size 2048;
  21. }
  22. server {
  23. listen 80;
  24. server_name gitlab.dodo.com; # 把域名替换成你自己的,第二个网站
  25. location / {
  26. proxy_redirect off;
  27. proxy_set_header Host $host;
  28. proxy_set_header X-Real-IP $remote_addr;
  29. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  30. proxy_pass http://172.19.12.3:80; # 这里设置你要代理的ip+端口
  31. add_header Access-Control-Allow-Origin *;#根据自己需求设置
  32. }
  33. client_max_body_size 50m;
  34. types_hash_max_size 2048;
  35. }

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号