设为首页 收藏本站
查看: 1248|回复: 0

[经验分享] GitLab ce 社区版本的https方式配置(yum)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-1-16 17:09:01 | 显示全部楼层 |阅读模式
    GitLab ce 社区版本的https方式配置(yum)
上次安装了gitlab 但是不是https现在需要全民https了今天就给大家配置https。(默认的不是https的访问登陆和git也不https的)
wKiom1h49uCzyV4LAAIOJE0C_W8696.png
先备份一下咱们的配置和文件,以防咱们修改错误回退
备份配置直接执行,先进入自己的备份目录.
1
tar -zPcf$(date  "+etc-gitlab_%Y%m%d_%H%M%S.tar.gz") /etc/gitlab




wKioL1h49w_xfGybAAEPxfRMCUI146.png
备份文件,默认在 /var/opt/gitlab/backup目录不知道可以看配置文件
gitlab_rails['backup_path']= "/var/opt/gitlab/backups" 的属性
如果出问题直接就可以恢复原装
恢复:停止数据库服务执行恢复指定文件编号
1
2
3
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
gitlab-rake  gitlab:backup:restore BACKUP=1484296250




输入yes就行了
之后把服务重启下:gitlab-ctl  restart 就行了
wKiom1h49y_Ac9hsAALIvBTnBqk052.png
生成证书:
因为我这是自己玩,没有浏览器信任机构的证书,就自己命令生成一个证书,这也是加密的只是浏览器不认。
建立证书并设置权限,必须是这个权限:
1
mkdir -p/etc/gitlab/ssl && chmod 700 /etc/gitlab/ssl && cd/etc/gitlab/ssl




wKiom1h490mzw4KsAAGa0glJFR0055.png
创建服务器私钥,命令会让你输入一个口令:(最好不要输入密码,好像不输入不通过,我输入1234之后再用命令把这个密码取消)
1
openssl genrsa-des3 -out server.key 1024



wKioL1h496ySwgaTAAI9cVW4JUg534.png
创建签名请求的证书(CSR):
openssl req -new-key server.key -out server.csr
需要输入刚才的密码,国家省份城市域名邮箱等信息
最后就生成了两个文件
wKioL1h493riOjaUAAOUfSD51hc116.png

在加载SSL支持的Nginx并使用上述私钥时要除去刚才设置的口令:
先备份刚才的csr文件
1
cp server.keyserver.key.org




去除命令,直接覆盖了server.key了
1
openssl rsa -inserver.key.org -out server.key




最后标记证书使用上述私钥和CSR:(把csr标记后转换成了crt nginx要用key和crt文件)
1
openssl x509 -req-days 365 -in server.csr -signkey server.key -out server.crt




wKiom1h4-OOSt0EzAAIDNQdEf7s073.png
直接修改gitlab的配置文件在运行gitlab-ctl reconfigure ,这个命令会把自己配置的文件导入到nginx的配置文件,运行这个命令会让nginx配置变化可以看下:
1
Vim /etc/gitlab/gitlab.rb




需要修改的配置:
1
2
3
4
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"




wKiom1h4-hei5bp2AAKA87WGyqg411.png

运行gitlab-ctl reconfigure(使配置生效)后Nginx的配置变成了:
会自动添加Http80跳转到443的配置的不用自己写的。
gitlab-ctlreconfigure命令非常爽的

wKiom1h5CAngDUIbAAR646HgDBc717.png

最后重启服务

以上全部完成之后, 使用gitlab-ctl restart(来重启所有服务), 即可使用HTTPS访问GitLab了,那个证书风险是因为咱们的https不是证书机构颁发的。
重启完成后咱们要看下nginx的配置key和crt路径对否。
下面是效果:

wKioL1h4_I-Q-YYKAAG2r7WhSQg433.png
参考:https://gitlab.com/gitlab-org/om ... c/settings/nginx.md
http://serverfault.com/questions ... e-nginx-on-centos-7
按照上面的方式已经实现了咱们的Https的配置了下面是我遇到的问题。
问题汇总:

我之前看了好多人的配置,他们是要自己修改nginx的配置,
先配置nginx来支持https
默认配置文件目录/var/opt/gitlab/nginx/conf
gitlab-http.conf  nginx.conf 这两个都需要配置
先配置gitlab-http.conf listen端口换成了443
增加内容为:
listen *:443
  ssl on;
  ssl_certificate /etc/gitlab/ssl/server.crt;
  ssl_certificate_key/etc/gitlab/ssl/server.key;
  ssl_protocols SSLv3 TLSv1;
  ssl_ciphersALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM;

wKioL1h5AYujk_VZAALyhzz8lrg325.png
增加一个配置文件用来HTTP跳转HTTPS:
/var/opt/gitlab/nginx/conf/index.conf
server {
    listen *:80;
    server_name 192.168.61.128;
    rewrite ^(.*)$  https://$host$1 permanent;
}
wKioL1h5Aafwg8PwAAD00HXUDQw102.png
最后修改/var/opt/gitlab/nginx/conf/nginx.conf配置文件, 在其中加入以下内容, 来载入刚才的配置文件index.conf(需要把 gzip off 关闭;):
include/var/opt/gitlab/nginx/conf/index.conf;
wKioL1h5AcjRWxWMAAHZgwtqjEk613.png
这样配置完成后再修改gitlab.rb文件后运行gitlab-ctl reconfigure
命令后就把刚才上面咱们加的nginx配置都冲掉了。
只能这么运行了:
gitlab-ctl stop nginx  停止nginx
gitlab-ctl start nginx  启动nginx
这样永远不能运行gitlab-ctl reconfigure 命令了。这种方式不太好。我用的最上面那种方式。
还有个问题就是:

用git命令clone的时候
1
2
3
4
5
git clone https://192.168.61.128/root/test.git
出现错误:
fatal: destination path 'test' already exists and is not an empty directory.
git config --global http.sslVerify false 关闭就可以clone, 就是咱们证书不是认证机构发的原因
git config --global http.sslVerify true  开启




wKioL1h5A7LS_ZAVAAC1lT97nsA570.png
到这里今天的https就算完成了。很晚了,2017年1月14日 00:45:39 睡觉啦

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-329292-1-1.html 上篇帖子: Jenkins+Tomcat+maven+git+ 下篇帖子: Jenkins + Git + Maven + tomcat集成环境(转)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表