本地生成https證書
我的gitlab安裝環境為Ubuntu 18.04,安裝好之后默認使用的是HTTP協議訪問;沒有HTTPS協議安全於是自己搞了搞,各種查資料啊,雖然中間也有不懂得地方,但是總算是成功了。接下來給大家詳細的描述一下步驟:
想要配置https協議,必須要有一個https的證書,由於我是在本地嘗試的,所以自己生成了一個證書
1、生成證書,建立權限並生成證書。
mkdir -p /etc/gitlab/ssl && chmod 700 /etc/gitlab/ssl && cd/etc/gitlab/ssl
2、創建服務器私鑰,需要輸入一個密碼,之后也會用到,我設置的123456
openssl genrsa-des3 -out server.key 1024
3、創建簽名的證書(csr)
openssl req -new -key server.key -out server.csr
在加載SSL支持的Nginx並使用上述私鑰時要除去剛才設置的口令:
先備份剛才的csr文件
cp server.key server.key.org
去除命令,直接覆蓋了server.key了
openssl rsa -in server.key.org -out server.key
最后標記證書使用上述私鑰和CSR:(把csr標記后轉換成了crt nginx要用key和crt文件)
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
做完這些,證書什么的就完成了,接下來修改配置文件
vim /etc/gitlab/gitlab.rb
需要修改的配置:
external_url"https://192.168.61.128" nginx['redirect_http_to_https']= true nginx['ssl_certificate']= "/etc/gitlab/ssl/server.crt" nginx['ssl_certificate_key']= "/etc/gitlab/ssl/server.key"
# 下邊這三項不知道改不改,有的說改了,有的說沒改;僅供參考
nginx['enable'] = true
nginx['redirect_http_to_https'] = true
nginx['redirect_http_to_https_port'] = 80
最后執行
gitlab-ctl reconfigure
不用配置443端口,因為已經自動指向了。接下來看看成果吧,完美的https
正經的HTTPS證書版本,阿里雲的ssl證書
首先拿到兩個證書,一個是key文件,一個為pem文件。
將pem文件直接改為crt后綴的文件,哈哈。
創建/etc/gitlab/ssl目錄,然后在其中復制密鑰和證書:
sudo mkdir -p /etc/gitlab/ssl sudo chmod 755 /etc/gitlab/ssl
將兩個證書放到ssl的目錄下,我是直接用sz,rz命令上傳的。
/etc/gtilab/gitlab.rb # 文件修改的內容
external_url "https://git.bjdvt.com" # 外往訪問的地址 nginx['enable'] = true nginx['redirect_http_to_https'] = true
# 指向兩個證書文件的路徑 nginx['ssl_certificate'] = "/etc/gitlab/ssl/git.bjdvt.com.crt" nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/git.bjdvt.com.key"
最后配置完記得
gitlab-ctl reconfigure
感覺不保險的話,那就在重啟一個gitlab:
gitlab-ctl restart
還有你的雲服務器的防火牆443的端口一定要開啟,不然無法訪問。我在此處掙扎了很久,很難受
gitlab官方配置地址:https://docs.gitlab.com/omnibus/settings/nginx.html