LabHub

Tomcat & nginx 운영 · SSL 종료와 인증서 · 퀴즈

퀴즈: SSL 종료와 인증서

LabHub 에서 이어서 보기

문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.

  1. 브라우저에서는 정상인데 연동 상대 시스템의 HTTP 클라이언트에서만 SSL 검증이 실패합니다. 가장 유력한 원인은?

    1. 서버 인증서가 만료됐는데 브라우저만 캐시된 검증 결과를 쓰고 있다
    2. 서버가 TLS 1.3 만 지원해 구버전 클라이언트가 협상에 실패한다
    3. 인증서에 SAN 이 없어 호스트 이름 검증에서 거부된다
    4. 중간 인증서가 빠졌는데, 브라우저는 캐시나 AIA 로 보완하고 서버 간 클라이언트는 안 한다
  2. nginx 가 기동되지 않으면서 `key values mismatch` 오류를 낼 때 30초 안에 확인하는 방법은?

    1. 인증서의 유효기간을 확인해 만료 여부부터 본다
    2. 설정 파싱 문제일 수 있으므로 nginx 를 다시 설치해 본다
    3. 같은 포트를 다른 프로세스가 쓰고 있는지 확인한다
    4. 인증서와 키의 modulus 해시를 각각 뽑아 같은지 비교한다
  3. `fullchain.pem` 을 만들 때 파일 안 인증서의 올바른 순서는?

    1. 서버 인증서 → 중간 CA (Root 는 클라이언트가 이미 갖고 있음)
    2. Root CA → 중간 CA → 서버 인증서
    3. 순서는 상관없다
    4. 중간 CA → 서버 인증서
  4. 최신 브라우저가 CN 에 도메인이 적힌 인증서를 거부하는 이유는?

    1. CN 필드가 X.509 표준에서 아예 제거되어 파싱 자체가 실패하기 때문에
    2. 도메인 검증 기준이 SAN 확장으로 옮겨 갔고, CN 은 참고 정보가 되었기 때문에
    3. CN 은 64자를 넘길 수 없어 긴 도메인을 담지 못하기 때문에
    4. CN 은 서명 대상에서 빠져 있어 위조를 막을 수 없기 때문에
  5. 인증서 만료 감시 스크립트를 만들 때 `openssl x509 -checkend <초>` 를 쓰는 이유는?

    1. 인증서 내용을 사람이 읽기 좋은 형태로 출력해 눈으로 확인하기 좋아서
    2. 남은 기간이 지정한 초보다 짧으면 0 이 아닌 코드로 끝나 날짜 파싱이 필요 없어서
    3. 만료가 임박하면 갱신 요청까지 자동으로 보내 주기 때문에
    4. 인증서와 함께 중간 인증서 체인까지 검증해 주기 때문에
  6. 오래된 연동 상대 시스템이 TLS 1.0 만 지원한다고 할 때 가장 적절한 대응은?

    1. 전체 서비스의 ssl_protocols 에 TLSv1 을 추가한다
    2. TLS 를 끄고 HTTP 로 연동한다
    3. 해당 상대 전용 포트/서버 블록을 따로 열어 예외를 격리하고 기한을 명시해 관리한다
    4. 인증서를 자체 서명으로 바꾼다