Omnibus-GitLab配置HTTPS

有一臺空閒的服務器, 因而想着搭建一臺GitLab玩一玩, 結果一看GitLab的官方安裝步驟, 我和個人小夥伴們都驚呆了! 正準備放棄的時候, 結果從一個隱蔽的小角落裏發現了一鍵安裝包. 靠, 有一鍵你就早說!nginx

這個文檔已經寫的很是簡單了, 大致意思是你首先得有一臺Linux服務器, Debian/Ubuntu or CenterOS. CenterOS我沒用過, 這裏只講Debian/Ubuntu.git

  • apt-get update & apt-get upgrade 首先升級系統到最新.
  • apt-get install openssh-server postfix postfix是用來Email給用戶用的, 安裝時選擇默認選項, 以後輸入你服務器綁定的域名.
  • 下載安裝包並拷貝到服務器.
  • dpkg -i gitlab_6.7.2-omnibus-1.ubuntu.12.04_amd64.deb 進行安裝.
  • 建立配置文件:
sudo mkdir -p /etc/gitlab
sudo touch /etc/gitlab/gitlab.rb
sudo chmod 600 /etc/gitlab/gitlab.rb
  • 編輯配置文件, 加入一條域名配置external_url "http://hostname.com"
  • 使用gitlab-ctl reconfigure命令載入&從新配置GitLab.
  • 以後輸入域名便可訪問了, 真的只要6步, So easy. 默認用戶名是root, 密碼是5iveL!fe.

這個一鍵安裝雖然不少部分都不是自定義配置, 可是做爲自用玩兒來講是足夠了. 可是雖然是自用玩兒, 咋也得來個HTTPS才能顯得高端大氣上檔次! 前面的安裝步驟我都是按照官方文檔來的, 一點問題都沒有, 順利的均可以用HTTP訪問使用了. 可是在開啓HTTPS的時候官方文檔就坑了, 按照官方文檔開啓HTTPS的步驟我在Debian 7, Ubuntu 12, Ubuntu 13全試過了, 都不行, 壓根沒法開啓Nginx的HTTPS.ubuntu

最後無奈之下我只能修改Nginx的配置了, 結果一下就好了, 坑爹阿.服務器

創建SSL目錄, 而後拷貝你的證書到SSL目錄:ssh

  • mkdir /etc/gitlab/ssl & chmod 700 /etc/gitlab/ssl
  • cp gitlab.hostname.com.crt gitlab.hostname.com.key /etc/gitlab/ssl/
    編輯/etc/gitlab/gitlab.rb文件, 修改爲:
external_url "https://hostname.com"
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.hostname.com.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.hostname.com.key"

以後使用gitlab-ctl reconfigure重建配置, 再修改Nginx配置文件/var/opt/gitlab/nginx/etc/gitlab-http.conf裏的默認設置:gitlab

listen *:443 default_server;                                                                                  
  ssl on;
  ssl_certificate /etc/gitlab/ssl/gitlab.hostname.com.crt;
  ssl_certificate_key /etc/gitlab/ssl/gitlab.hostname.com.key;
  ssl_protocols SSLv3 TLSv1;
  ssl_ciphers ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM;

接着再建立一個/var/opt/gitlab/nginx/etc/index.conf文件用來HTTP跳轉HTTPS:post

server {
    listen *:80;
    server_name hostname.com;

    rewrite ^(.*)$  https://$host$1 permanent;
}

最後修改/var/opt/gitlab/nginx/etc/nginx.conf配置文件, 在其中加入如下內容, 來載入index.conf:url

include /var/opt/gitlab/nginx/etc/index.conf;
include /var/opt/gitlab/nginx/etc/gitlab-http.conf;

以上所有完成以後, 使用gitlab-ctl restart來重啓全部服務, 便可使用HTTPS訪問GitLab了.rest

PS: 注意在防火牆中開啓SSH HTTP HTTPS and SMTP端口.code

相關文章
相關標籤/搜索