생성 및 갱신 인증서를 암호화하자

생성 및 갱신 인증서를 암호화하자

내 도메인은 (예) mydomain.eu이며 np-ip를 사용하여 내 동적 IP와 동기화됩니다.
집에는 포트 80/443을 수신하는 웹 서버가 있고 Let's Encrypt with certbot 및 DNS 레코드(txt)로 배포에서 새 와일드카드 인증서를 받았습니다.

그것만으로도 충분하다고 생각하지만 아닙니다...
다른 서버에 대한 인증서(cname mydomain.eu : cloud.mydomain.eu e mail.mydomain.eu)가 필요하고 공급자 패널에서 cname을 설정합니다.

또한 Nextcloud로 클라우드 서버를 설정했는데 이 서버에 대한 인증서를 받고 싶습니다. certbot이 80 및 443 포트를 원하기 때문에 오류가 발생하지만 내 Ncserver는 포트 81 및 1443을 수신합니다. 앞으로는 다른 포트도 수신하는 내부 웹 메일을 생성하겠습니다.

내부 설정

Example:
WEBSERVER # www.mydomain.eu - nginx - ip xxx.xxx.xxx.50 --> port 80/443
NEXTCLOUD # cloud.mydomain.eu - apache - ip xxx.xxx.xxx.51 -> port 81/1443
MAIL # mail.cloud.mydomain.eu - nginx/apache - ip xxx.xxx.xxx.52 -> port 82/2443

Nginx 웹서버 구성:

ssl_certificate /etc/letsencrypt/live/mydomain.eu/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mydomain.eu/privkey.pem;

server {
listen 80;
listen [::]:80;
server_name *.mydomain.eu;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name *.mydomain.eu;
root /var/www/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}

server {
listen 80;
listen [::]:80;
server_name cloud.mydomain.eu;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name cloud.mydomain.eu;

location / {
proxy_pass http://xxx.xxx.xxx.51:1443;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}

각 서버에 대한 인증서(또는 와일드카드 인증서)를 얻는 가장 좋은 방법은 무엇입니까? txt3개월마다 레코드를 배포하지 않고 인증서 갱신을 위해 cron을 활성화하는 것이 좋습니다.

답변1

모든 도메인이 동일한 호스트에 있는 경우 다른 구성에서 동일한 파일을 간단히 사용할 수 있습니다(와일드카드 인증서를 사용할 수 있다고 언급했습니다)...

더 많은 서비스에 하나의 와일드카드를 (재사용) 사용하거나 하위 도메인당 추가 인증서를 사용할지는 귀하에게 달려 있습니다. 어쨌든 와일드카드 인증서가 있고 자동으로 갱신되도록 계획된 경우 어쨌든 DNS 토큰 확인(TXT 레코드)이 필요하며 DNS를 사용하여 도메인의 유효성이 검사되면 인증서를 얻기 위해 서버를 실행할 필요도 없습니다. "도메인별" 인증서의 경우 도메인의 DNS 확인을 사용할 수 있으므로 비표준 포트도 문제가 없습니다.

어쨌든 와일드카드 인증서의 경우 표준 80/443 포트에 모든 것을 갖추는 것이 더 쉽지 않습니까? 요즘에는 SNI(포트 공유 및 요청 내용에 따라 구분)에 문제가 없습니다. 이 경우 와일드카드 인증서를 처리하고 트래픽을 백엔드(nginx, apache httpd 등)로 전달하는 하나의 역방향 프록시(예: haproxy)를 가질 수 있습니다.

--- 편집 - 2020년 1월 19일: 22:40 CET ---

DNS 공급자가 "쉬운" DNS 업데이트를 제공하지 않는 경우 필요한 "하위 도메인"을 시스템에 위임하고 이 동적 업데이트(TXT 레코드)의 경우를 위해 로컬 DNS 서버를 어느 정도 실행할 수 있습니다.

도메인을 가정하자example.com업데이트된 fqdn이 있는 로컬 노드local-example.com.noip.com귀하의 시스템을 가리키고 있습니다. 등록 기관 시스템에서는 정적 기록을 수행할 수 있습니다.

_acme-challenge.example.com. 3600 IN NS local-example.com.noip.com.

이렇게 하면 example.com 도메인에 대한 DNS 토큰을 로컬 시스템에 쉽게 위임할 수 있습니다. 여기서 구성된 도메인으로 로컬 DNS 서버(예: 바인딩)를 실행할 수 있습니다._acme-challenge.example.com그러면 TXT 레코드를 로컬로 업데이트할 수 있습니다. 이 도메인에는 A 또는 AAAA의 유효한 레코드가 없으므로 최소한 TXT에 대한 SOA, NS 및 동적 업데이트만 있습니다 ;-).

관련 정보