Gitlab/SSL证书/内网部署/Go项目使用示例

6 篇文章 0 订阅

1. 安装docker

Install Docker Engine on Debian | Docker Documentation

1.1 修改主机SSH端口

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

1.2 修改NGINX的配置

vim /etc/nginx/nginx.conf #!!!!注意,这里不是/etc/nginx/conf.d/default.conf

#添加如下代码
stream {
    upstream stream_backend {
        server 192.168.0.2:22;
   }
   server {
        listen 22;
        proxy_pass stream_backend;
   }
}

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
external_url 'https://192.168.0.2'
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/192.168.0.2.crt" #别管有没有,先配置
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/192.168.0.2.key" #别管有没有,先配置


gitlab_rails['time_zone'] = 'Asia/Shanghai'
sidekiq['concurrency'] = 8
postgresql['shared_buffers'] = "128MB"
postgresql['max_worker_processes'] = 4
prometheus_monitoring['enable'] = false

4.创建证书

vim /home/gitlab/config/ssl/generate_crt.sh #编写生成证书脚本
#!/bin/sh
# 创建证书:
read -p "输入你的内网地址: " DOMAIN
SUBJECT="/C=ZH/ST=Home/L=$DOMAIN/O=$DOMAIN/OU=$DOMAIN/CN=$DOMAIN"
openssl req -subj $SUBJECT  -sha256 -newkey rsa:2048 -nodes -keyout  $DOMAIN.key -x509 -days 3650 -out  $DOMAIN.crt -config ./openssl.cnf -extensions v3_req
docker cp gitlab:/usr/lib/ssl/openssl.cnf openssl.cnf //复制容器的默认配置
vim openssl.cnf #修改配置
req_extensions = v3_req #把这个配置打开

[ v3_req ]


# Extensions to add to a certificate request

basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names # 添加一行配置

[ alt_names ]# 添加一行配置
IP.1 = 192.168.0.2 # 添加一行配置
#DNS.1 = a.com #如果是内网,没有域名的,不能添加DNS.否则证书出错
chmod 775 ./generate_crt.sh #给权限
./generate_crt.sh #生成证书
docker restart gitlab #重启容器

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

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

// 登记一次密匙
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配置环境变量  

# 运行CMD命令 , 配置环境变量
setx CGO_ENABLED 1
setx GOOS windows
setx GOARCH amd64
setx CC gcc
setx GOPATH D:\DevManager #我这里是这个位置
setx GOPROXY https://goproxy.cn,direct #使用代理
setx GO111MODULE on
setx GOINSECURE 192.168.0.2#指定不检查证书的地址
setx GOPRIVATE 192.168.0.2 #指定不使用代理的地址
setx GOROOT D:\go #我这里是这个位置
# 运行CMD命令,下拉test项目
mkdir %GOPATH%\src\golanguser\192.168.0.2
cd %GOPATH%\src\golanguser\192.168.0.2
D: #切换到D盘,我这里是D盘
git clone https://192.168.0.2/golanguser/test1.git
git clone https://192.168.0.2/golanguser/test2.git
//在test1文件夹中,新建test1.go文件
package test1

import (
	"fmt"
)


//首字母要大写
func Hello(){
    fmt.Println("我是测试1")
}
//在test2项目文件夹中,创建一个test2.go文件
package test2
import(
    "192.168.0.2/golanguser/test1" #这里不会走代理
    "fmt"
    "github.com/dodoao/gt" #这里会走代理
)

func test2(){
    test1.Hello()
    fmt.Println(gt.Get_current_directory())
}
#运行CMD命令,初始化
cd %GOPATH%/src/192.168.0.2/golanguser/test1 #
D: #切换到D盘,我这里是D盘
go mod init
go get -d -v ./... #循环下载所有依赖
cd %GOPATH%/src/192.168.0.2/golanguser/test2 #
D: #切换到D盘,我这里是D盘
go mod init
go get -d -v ./... #循环下载所有依赖,只要这里成功完成了,就成功了

基本用法

       

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

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

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

server {
     listen 443 ssl;
           server_name gitlab.dodo.com;
           ssl on;
           ssl_certificate   /etc/nginx/cert/gitlab.dodo.com.crt;
           ssl_certificate_key   /etc/nginx/cert/gitlab.dodo.com.key;
           ssl_session_timeout 5m;
           ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
           ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
           ssl_prefer_server_ciphers on;
           location / {
                     proxy_redirect off;
                           proxy_set_header Host $host;
                           proxy_set_header X-Real-IP $remote_addr;
                          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                           proxy_pass https://172.19.12.3;      # 这里设置你要代理的ip+端口
                           add_header Access-Control-Allow-Origin *;#根据自己需求设置

           }
               client_max_body_size 50m;
               types_hash_max_size 2048;
}

server {
    listen 80;
    server_name gitlab.dodo.com;    # 把域名替换成你自己的,第二个网站
    location / {
    proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://172.19.12.3:80;      # 这里设置你要代理的ip+端口
        add_header Access-Control-Allow-Origin *;#根据自己需求设置
      }

    client_max_body_size 50m;
    types_hash_max_size 2048;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天道酬勤~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值