무료 SSL 인증서 발급

docker에 letsencrypt 설치

$ sudo docker exec -it gitlab /bin/bash
root@gitlab:/# apt-get install letsencrypt

인증에 사용 할 설정 추가

$ sudo docker exec -it gitlab vim /etc/gitlab/gitlab.rb

위 명령을 실행하여 gitlab 설정 파일을 열고, custom_gitlab_server_config 설정 부분을 찾아 아래와 같이 수정해 준다.

nginx['custom_gitlab_server_config'] = "location ^~ /.well-known { root /var/www/letsencrypt; }"

설정 변경사항 적용

$ sudo docker exec -it gitlab gitlab-ctl reconfigure

인증서 발급

$ sudo docker exec -it gitlab /bin/bash
root@gitlab:/# letsencrypt certonly -a webroot -w /var/www/letsencrypt -d $GILAB_DOMAIN_NAME

$GILAB_DOMAIN_NAME 부분을 인증서를 발급 받을 도메인 명으로 설정하여 인증서를 발급받는다.

발급받은 인증서 설정

$ sudo docker exec -it gitlab vim /etc/gitlab/gitlab.rb

아래 내용 설정 부분을 찾아 변경해준다.

nginx['redirect_http_to_https']=true
nginx['ssl_certificate'] = "/etc/letsencrypt/live/#{node['fqdn']}/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/#{node['fqdn']}/privkey.pem"

설정 변경사항 적용

$ sudo docker exec -it gitlab gitlab-ctl reconfigure

crontab에 인증서 자동갱신을 설정한다.

$ crontab -e

host PC 쪽 스케쥴러 설정에 아래 내용을 추가하여 매월 1일 새벽에 인증서가 갱신 될 수 있도록 한다.

10 5 * * 1 sudo docker exec -t gitlab /usr/bin/letsencrypt renew >> /var/log/le-renew.log
15 5 * * 1 sudo docker exec -t gitlab /usr/bin/gitlab-ctl restart nginx
마지막 수정일:2019-08-09 08:17:34