SSL서버 인증서 및 갱신 프로세스(Let's Encrypt 및 ZeroSSL) 자동화 내장 certbot을 갖춘 Nginx 웹서버 및 역방향 프록시 설정
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 49 조회
- 목록
본문
리눅스서버/swag
이 readme는 여기에서 찾을 수 있는 전체 버전에서 축약되었습니다 .
SWAG - 보안 웹 애플리케이션 게이트웨이(이전 명칭 letsencrypt, Let's Encrypt™와는 관련 없음)는 PHP 지원 및 무료 SSL 서버 인증서 생성 및 갱신 프로세스(Let's Encrypt 및 ZeroSSL)를 자동화하는 내장 certbot 클라이언트를 갖춘 Nginx 웹 서버 및 역방향 프록시를 설정합니다. 또한 침입 방지를 위한 fail2ban도 포함되어 있습니다.
응용 프로그램 설정
검증 및 초기 설정
- 이 컨테이너를 실행하기 전에 URL과 하위 도메인이 이 컨테이너의 호스트로 제대로 전달되었는지 확인하고, 포트 443(또는 80)이 호스트의 다른 서비스(NAS GUI, 다른 웹 서버 등)에서 사용되고 있지 않은지 확인하세요.
- 동적 DNS 공급자가 필요한 경우 무료 공급자 duckdns.org를 사용할 수 있습니다. 여기서는 http 검증 또는 DNS 검증을 통해
URLwill이yoursubdomain.duckdns.org되고SUBDOMAINScan이 됩니다 . duckdns 이미지를 사용 하여 duckdns.org에서 IP를 업데이트할 수 있습니다.www,ftp,cloudwildcard - 검증을 위해
http라우터의 인터넷 측 포트 80을 이 컨테이너의 포트 80으로 전달해야 합니다. - 검증을 위해
dns해당 ini(또는 일부 플러그인의 경우 json) 파일에 자격 증명을 입력해야 합니다./config/dns-conf- Cloudflare는 DNS 관리를 위한 무료 계정을 제공하며 이 이미지로 사용하기 매우 쉽습니다. "DNS + 프록시" 대신 "DNS 전용"으로 설정되어 있는지 확인하세요.
- Google DNS 플러그인은 유료 기업 제품인 "Google Cloud DNS"와 함께 사용하도록 되어 있으며 "Google Domains DNS"에는 사용할 수 없습니다.
- DuckDNS는 두 가지 유형의 DNS 검증 인증서만 지원합니다(동시에 두 가지를 지원할 수는 없음):
- 주요 하위 도메인만을 포함하는 인증서(즉
yoursubdomain.duckdns.org,SUBDOMAINS변수를 비워두세요) - 주요 하위 도메인의 하위 하위 도메인을 포함하는 인증서(예 : 변수를 로
*.yoursubdomain.duckdns.org설정 )SUBDOMAINSwildcard
- 주요 하위 도메인만을 포함하는 인증서(즉
-
--cap-add=NET_ADMINfail2ban이 iptables를 수정하려면 필요합니다. - 설치 후
https://yourdomain.url기본 홈페이지에 접속합니다(포트 80을 통한 http 접속은 기본적으로 비활성화되어 있으며, 기본 사이트 구성을 편집하여 활성화할 수 있습니다/config/nginx/site-confs/default.conf). - 인증서는 매일 밤 확인되며 만료일이 30일 이내이면 갱신을 시도합니다. 인증서가 30일 이내에 만료되는 경우 아래의 로그를 확인하여
/config/log/letsencrypt갱신이 실패한 이유를 확인합니다. 이러한 상황에서 Let's Encrypt에서 만료 알림을 받을 수 있도록 docker 매개변수에 이메일을 입력하는 것이 좋습니다.
Certbot 플러그인
SWAG에는 기본적으로 많은 Certbot 플러그인이 포함되어 있지만 모든 플러그인을 포함할 수 있는 것은 아닙니다. 포함되지 않은 플러그인이 필요한 경우 플러그인을 사용할 수 있는 가장 빠른 방법은 Universal Package Install Docker Mod를 사용하는 것 입니다 .
컨테이너에서 다음 환경 변수를 설정하세요.
DOCKER_MODS=linuxserver/mods:universal-package-installINSTALL_PIP_PACKAGES=certbot-dns-<plugin>
필요한 자격 증명(일반적으로 플러그인 설명서에서 찾을 수 있음)을 .에 설정합니다 . 플러그인이 예상대로 작동하는지 확인하려면 먼저
/config/dns-conf/<plugin>.ini
인증서를 얻으려고 시도하는 것이 좋습니다 .
STAGING=true
보안 및 암호 보호
- 컨테이너는 URL과 하위 도메인의 변경 사항을 감지하고, 기존 인증서를 해지하고 시작 중에 새로운 인증서를 생성합니다.
- RFC7919 에 따라 컨테이너는 ffdhe4096 을 . 으로 운송합니다
dhparams.pem. - 사이트를 암호로 보호하려면 htpasswd를 사용할 수 있습니다. 호스트에서 다음 명령을 실행하여 htpasswd 파일을 생성합니다.
docker exec -it swag htpasswd -c /config/nginx/.htpasswd <username> - 여러 user:pass를 .에 추가할 수 있습니다
.htpasswd. 첫 번째 사용자의 경우 위의 명령을 사용하고 다른 사용자의 경우-c플래그 없이 위의 명령을 사용합니다. 이렇게 하면 기존 사용자의 삭제.htpasswd와 새 사용자의 생성이 강제로 이루어집니다. - 보안 및 액세스 제어를 위해 ldap auth를 사용할 수도 있습니다. 샘플, 사용자 구성 가능한 ldap.conf가 제공되며 ldap 서버와 통신하려면 별도의 이미지 linuxserver/ldap-auth가 필요 합니다.
사이트 구성 및 역방향 프록시
- 기본 사이트 구성은 .에 있습니다
/config/nginx/site-confs/default.conf. 이 파일을 자유롭게 수정하고 다른 conf 파일을 이 디렉토리에 추가할 수 있습니다. 그러나 파일을 삭제하면default컨테이너 시작 시 새 기본값이 생성됩니다. - 인기 있는 앱에 사전 설정된 역방향 프록시 구성 파일이 추가되었습니다. 이를 활성화하는 방법에 대한 지침은 아래 파일을 참조하세요. 사전 설정된 conf는 이 repo에 있으며 여기 에서
README.md가져 옵니다 ./config/nginx/proxy_confs - 검색 엔진 크롤러에서 사이트를 숨기려면 ssl.conf가 포함된 줄 위에 있는 server 블록 내의 사이트 구성에 이 구성 줄을 추가하는 것이 유용할 수 있습니다 .
add_header X-Robots-Tag "noindex, nofollow, nosnippet, noarchive";이렇게 하면 Google 등에 사이트를 인덱싱하고 나열하지 않도록 요청합니다 . 검색 엔진에 표시하려는 사이트에서 이 줄을 그대로 두면 결국 목록에서 삭제되므로 조심하세요. - http를 https로 리디렉션하려면 포트 80을 노출해야 합니다.
다른 컨테이너에서 인증서 사용
- 이 컨테이너에는 Emby와 Znc와 같은 다른 앱에 필요한 자동 생성된 pfx 및 private-fullchain-bundle pem 인증서가 포함되어 있습니다.
- 다른 컨테이너에서 이러한 인증서를 사용하려면 다음 중 하나를 수행하세요.
- (더 쉬움) 컨테이너의 config 폴더를 다른 컨테이너(예:
-v /path-to-swag-config:/swag-ssl)에 마운트하고 다른 컨테이너에서는 인증서 위치를 사용합니다./swag-ssl/keys/letsencrypt/ - (더욱 안전함) 다른 컨테이너(예: )
etc에 있는 SWAG 폴더를 마운트하고 다른 컨테이너에서 인증서 위치를 사용합니다. (첫 번째 방법은 www 파일을 포함하여 전체 SWAG 구성 폴더를 다른 컨테이너와 공유하는 반면 두 번째 방법은 ssl 인증서만 공유하기 때문에 이 방법이 더 안전합니다.)/config-v /path-to-swag-config/etc:/swag-ssl/swag-ssl/letsencrypt/live/<your.domain.url>/
- 이러한 자격증에는 다음이 포함됩니다.
-
cert.pemCertbot에서 생성되고 nginx 및 기타 다양한 앱에서 사용되는 ,chain.pem,fullchain.pem및privkey.pem -
privkey.pfxMicrosoft에서 지원하고 Emby Server(비밀번호 없음)와 같은 dotnet 앱에서 일반적으로 사용되는 형식 -
priv-fullchain-bundle.pemZNC와 같은 앱에서 사용하는 개인 키와 전체 체인을 묶은 pem 인증서
fail2ban 사용
- 이 컨테이너에는 기본적으로 5개의 감옥이 설정된 fail2ban이 포함되어 있습니다.
- nginx-http-인증
- nginx-배드봇
- nginx-봇서치
관련자료
-
링크
댓글 0
등록된 댓글이 없습니다.