Omnibus Gitlab CentOS 7使用Let's Encrypt配置免费ssl

首先安装omnibus gitlab,参照

https://about.gitlab.com/downloads/

 

参照以下两篇文章结合配置:

https://certbot.eff.org/#centosrhel7-nginx

https://webnugget.de/setting-up-gitlab-with-free-ssl-certs-from-lets-encrypt-on-ubuntu-14-04/

 

1.安装certbot。

$ sudo yum install epel-release
$ sudo yum install certbot

 

2.配置gitlab:

$ vi /etc/gitab/gitlab.rb
更改以下配置项:
external_url "http://gityu.com/"

nginx['redirect_http_to_https'] = true

nginx['ssl_certificate']= "/etc/letsencrypt/live/gityu.com/fullchain.pem"

nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gityu.com/privkey.pem"  
nginx['custom_gitlab_server_config']="location ^~ /.well-known {\n alias /var/www/letsencrypt/.well-known;\n}\n"  

重启gitlab:

$ gitlab-ctl reconfigure

3.生成证书:
$ certbot certonly

按照步骤配置如下图:

使用webroot插件,填写域名:gityu.com,

根路径:/var/www/letsencrypt

 

 

 
最后成功安装,有效期90天。

 

4.生效https://:

$ vi /etc/gitlab/gitlab.rb

更改:

external_url "https://gityu.com/"
 

重启gitlab使生效:

$ gitlab-ctl reconfigure

 
此时可以访问gityu.com会自动重定向到https://gityu.com,并且证书为绿色:

 

5.创建crontab job,自动更新证书。

$ vi /etc/cron.monthly/renew-ssl-certificates

填入以下内容:
 
certbot renew --quiet 

这样每个月更新一次,也可以使用crontab -e来创建crontab job。

 

注意,使用此命令之前先使用以下命令验证是否可以成功更新:

$ certbot renew --dry-run

 如果命令失败,那么可以使用以下文章中的方法作为备用:

 https://webnugget.de/setting-up-gitlab-with-free-ssl-certs-from-lets-encrypt-on-ubuntu-14-04/

即使用以下脚本来自动更新:

#!/bin/bash

/bin/letsencrypt certonly -c /root/letsencrypt-config/gitlab.ini --renew-by-default

gitlab-ctl restart

posted on 2016-08-05 12:39  傻子才悲伤  阅读(769)  评论(0编辑  收藏  举报

导航