시놀로지 Docker Https 적용하기

이재철·2021년 10월 11일
0

일단 간단하게 할 수 있는 역방향 프록시를 설정하면 된다고 하는데 필자는 적용안된다 ㅎㅎ

필자는 패키지 센터에 있는 깃랩을 설치였다.

Https 설정

우선 실행 중인 깃랩을 멈추고 다음과 같이 환경 변수를 세팅한다.

SSL_KEY_PATH=/home/git/data/certs/gitlab.key
SSL_DHPARAM_PATH=/home/git/data/certs/dhparam.pem
SSL_CERTIFICATES_PATH=/home/git/data/certs/gitlab.crt
SSL_SELF_SIGNED=false
GITLAB_HTTPS=true
GITLAB_HOST=domain.com
GITLAB_PORT=(your container port)

다음으로 포트 설정을 80 -> 443으로 변경

ssh 접속으로 시놀로지에 접속한다. (관리자로)

cd /usr/syno/etc/certificate/_archive/

위의 경로로 이동하면 6자리의 인증서 폴더가 있다.
인증서가 없다면 제어판 -> 인증서 에서 하나 생성해 준다.

ls -al

위의 명령어를 실행하면 언제 생성됬는지 확인 할 수있음.

cd xxxxxx

인증서 폴더로 이동하고 해당 인증서를 도커쪽 폴더로 복사한다.

# 해당 폴더가 없으면 생성해주자
mkdir /volume1/docker/gitlab/gitlab/certs
# 인증서 복사
cp -f privkey.pem /volume1/docker/gitlab/gitlab/certs/gitlab.key;\
cp -f fullchain.pem /volume1/docker/gitlab/gitlab/certs/gitlab.crt;

복사가 끝나면 복사한 폴더 쪽으로 이동하여 dhparam.pem를 생성한다

cd /volume1/docker/gitlab/gitlab/certs
openssl dhparam -out dhparam.pem 4096

dhparam.pem 생성은 엄청 오래 걸린다. 필자는 켜두고 잤음 ㅋㅋㅋ

dhparam.pem 생성이 완료 되면 깃랩을 실행 하면 https 적용이 완료 됨!!

인증서 자동 갱신

제어판 -> 작업 스케줄러 -> 예약된 작업 -> 사용자 정의 스크립트
작업 설정 탭에서 스크립트를 다음과 같이 작성

# 인증서 폴더 명 
ID="xxxxxx"

#/usr/syno/bin/synopkg stop Docker-GitLab
cd /usr/syno/etc/certificate/_archive/${ID}
SYNOLOGY_CERT=$(sudo openssl x509 -checkend 0 -in fullchain.pem)
GITLAB_CERT=$(openssl x509 -checkend 0 -in /volume1/docker/gitlab/gitlab/certs/gitlab.crt)
echo "synology cert status: ${SYNOLOGY_CERT}"
echo "gitLab cert status: ${GITLAB_CERT}"

if [ "${SYNOLOGY_CERT}" != "${GITLAB_CERT}" ]
then
echo "Action Required"
sudo \cp -f privkey.pem /volume1/docker/gitlab/gitlab/certs/gitlab.key;
sudo \cp -f fullchain.pem /volume1/docker/gitlab/gitlab/certs/gitlab.crt;
echo "GitLab restarting.."
/usr/syno/bin/synopkg restart Docker-GitLab
else
echo "no action required."
fi

echo "done."

스케줄 텝에서 다음과 같이 설정 후 확인 클릭(일요일마다 실행)

참고

0개의 댓글