SSL 인증서
인증서를 자동으로 발급받고 갱신하여 웹 서비스에서 사용하며 다른 소프트웨어에도 내보낼 수 있습니다.
기능
- ACME DNS-01 자동 발급과 갱신: 동적 DNS의 DNS 제공자를 재사용하므로 80 / 443 포트를 열 필요가 없습니다.
- ACME HTTP-01: DNS 제공자가 필요 없지만 인터넷에서 각 도메인의 80번 포트에 접속할 수 있어야 하며 와일드카드는 지원하지 않습니다.
- 와일드카드 인증서와 EAB(예: ZeroSSL)
- 기존 인증서 업로드 또는 파일에서 읽기
- 디렉터리 매핑: 인증서가 바뀌면 지정한 디렉터리에 기록하고 스크립트를 실행하여 다른 서비스가 다시 로드하게 합니다.
- 자동 배포: 인증서가 바뀌면 여러 로컬 디렉터리에 복사하거나, SSH로 다른 호스트에 업로드하고 명령을 실행하거나, 이 인증서를 쓰는 Docker 컨테이너를 재시작합니다.
HTTP-01 검증
인증서의 「방식」에서 HTTP-01을 선택합니다. 발급할 때 CA가 http://<도메인>/.well-known/acme-challenge/<token>에 접속합니다.
- 웹 서비스가 이미 80번 포트에서 수신 중이면 웹 서비스가 직접 응답하며 기존 사이트에는 영향이 없습니다.
- 80번 포트가 비어 있으면 Gately가 발급하는 동안 이 포트에서 임시로 대기하고 완료되면 즉시 닫습니다.
- 공유기가 공용 80번 포트를 이 호스트의 다른 포트로 전달한다면 「임시 대기 포트」에 그 포트를 입력합니다.
인바운드 80번 포트를 차단하는 가정용 회선(중국 본토의 가정용 광대역 등)에서는 DNS-01을 사용하세요.
인증서 매핑
인증서를 활성화하면 Gately가 .crt, .key, .pem, _issuerCertificate.crt를 매핑 디렉터리에 기록하고 변경 스크립트를 실행합니다.
자동 배포
인증서의 「자동 배포」에서 배포 대상을 여러 개 추가할 수 있으며, 인증서가 발급·갱신·업데이트되면 자동으로 실행됩니다.
- 로컬 디렉터리에 복사: 인증서를 이 머신의 디렉터리에 쓰고 "복사 후 실행" 명령을 로컬에서 실행합니다. 디렉터리를 여러 개 추가하고 각각 다른 명령을 쓸 수 있습니다. 디렉터리의 인증서 파일이 삭제되거나 바뀌면 다음 검사 때 다시 복사합니다. Gately가 Docker에서 실행 중이면 디렉터리와 명령은 컨테이너 안의 것입니다.
- SSH 호스트에 업로드: 웹 터미널에 있는 SSH 연결을 선택하면 그 연결의 주소, 인증 방식, 프록시를 그대로 사용합니다. 인증서 파일(
<메모>.crt,.key,.pem,_issuerCertificate.crt. 인증서 매핑과 같으므로 메모를 비워 둘 수 없습니다)을 원격 디렉터리에 기록한 뒤 원격 호스트에서 「업로드 후 실행」 명령(예:systemctl reload nginx)을 실행합니다. 명령에서는$certName,$certDir,$certFile,$keyFile을 쓸 수 있습니다. 파일은 먼저 임시 파일에 쓰고 권한을 설정한 뒤 이름을 바꿔 교체하며, 개인 키 권한은 0600입니다. - 로컬 컨테이너 재시작: 인증서가 바뀌면 선택한 Docker 컨테이너를 차례로 재시작합니다. 매핑 디렉터리를 마운트했고 새 인증서를 읽으려면 재시작이 필요한 서비스에 적합합니다.
"로컬 디렉터리에 복사"와 "SSH 호스트에 업로드"에서는 인증서(전체 체인)와 개인 키의 파일 이름을 fullchain.pem, privkey.pem처럼 지정할 수 있습니다. 둘 다 입력하면 이 두 파일만 쓰며 메모는 비워도 됩니다. 비워 두면 인증서 매핑과 같은 파일 이름을 씁니다. 명령의 $certFile, $keyFile은 실제로 쓴 파일을 가리킵니다.
자동 배포는 알 수 없는 호스트를 신뢰하지 않습니다. 선택한 SSH 연결로 웹 터미널에서 먼저 한 번 접속해 호스트 키를 기록해야 업로드합니다. 배포에 실패하면 1시간마다 다시 시도하고 「인증서: 배포 실패」 이벤트를 보내며, 이 이벤트는 알림 센터에서 구독할 수 있습니다. 인증서 카드의 「지금 배포」는 재시도 간격과 상관없이 활성화된 모든 대상에 즉시 배포하고 대상별 결과를 표시합니다.
인증서를 편집할 때 대상 설정이 그대로인 배포는 다시 실행하지 않으며, 원격 디렉터리, 명령, 컨테이너를 바꾸면 한 번 다시 배포합니다.
보안 안내
개인 키는 설정 디렉터리의 ssl.json에 저장됩니다. 이 파일을 안전하게 보관하고, 버전 저장소에 넣을 때는 저장소가 비공개인지 확인하세요.
Lucky에서 마이그레이션
이미 발급된 인증서는 그대로 가져올 수 있으며 만료 전에는 다시 신청하지 않습니다. ZeroSSL은 Lucky의 EAB 자격 증명으로 새 ACME 계정을 등록합니다. 자세한 내용은 마이그레이션 가이드를 참고하세요.