홈 › 웹 서버 › 07 / 8

nginx HTTPS

섹션 7진행 0 / 8

6. 연습 문제

문제 1. 키와 CSR 명령 작성

CN 을 app.example.local 로 고정해 2048bit 키와 CSR 을 만드는 명령 두 줄을 쓰세요.

bash
openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr \
  -subj "/C=KR/ST=Seoul/L=Seoul/O=StudyCo/OU=IT/CN=app.example.local"

-subj 를 고정해야 질문 없이 자동으로 실행됩니다.

문제 2. 443 서버 블록 필수 지시어

443 을 받는 server 블록에 반드시 넣어야 하는 지시어 4개를 쓰세요.

text
listen 443 ssl http2;
ssl_certificate
ssl_certificate_key
ssl_protocols

인증서·키 경로 두 개와 허용 프로토콜이 없으면 nginx 가 TLS 를 시작하지 못합니다.

문제 3. 80→443 리다이렉트

80 번으로 온 요청을 같은 경로의 443 으로 영구 이동시키는 한 줄을 쓰세요.

nginx
return 301 https://$host$request_uri;

301 은 브라우저에 캐시돼 다음부터는 바로 https 로 요청합니다.

문제 4. HSTS 헤더

1 년 동안 하위 도메인까지 https 만 쓰도록 강제하는 응답 헤더 줄을 쓰세요.

nginx
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

always 를 빼면 오류 응답에는 이 헤더가 안 붙습니다.

문제 5. 만료 확인과 마스킹 이유

인증서 만료일만 뽑는 openssl 명령을 쓰고, 실습 자료에서 그 결과를 그대로 공개하지 않고 가리는 이유를 한 문장으로 쓰세요.

bash
openssl x509 -in server.crt -noout -enddate

날짜는 실행 시점마다 달라져 그대로 두면 문서 예제가 매번 달라 보이기 때문입니다.