SSL 인증서 문제 해결

문제 해결 절차는 Google 관리형 SSL 인증서를 사용하는지 자체 관리형 SSL 인증서를 사용하는지에 따라 다릅니다.

Google 관리형 인증서 문제 해결

Google 관리형 SSL 인증서 상태

인증서 상태를 확인하려면 다음 명령어를 실행하세요.

gcloud beta compute ssl-certificates describe CERTIFICATE_NAME \
    --global \
    --format="get(name,managed.status)"

관리 상태의 값은 다음과 같습니다.

관리 상태 설명
PROVISIONING Google 관리형 인증서가 생성되었으며 Google Cloud는 인증 기관과 협력하여 서명합니다.
Google 관리형 인증서를 프로비저닝하는 데 최대 60분이 걸릴 수 있습니다.

인증서가 PROVISIONING 상태인 경우 올바른 인증서가 대상 프록시와 연결되어 있는지 확인합니다. gcloud compute target-https-proxies describe 또는 gcloud compute target-ssl-proxies describe 명령어를 실행하여 이를 확인할 수 있습니다.
ACTIVE Google 관리형 SSL 인증서는 인증 기관에서 가져옵니다. 부하 분산기에서 사용하기까지 추가로 30분이 걸릴 수 있습니다.
PROVISIONING_FAILED 인증서가 실제로 ACTIVE 상태일 때에도 잠깐 동안 PROVISIONING_FAILED 상태로 보일 수 있습니다. 상태를 다시 확인하세요.

계속 PROVISIONING_FAILED 상태일 경우 Google 관리형 인증서가 생성되었으나 인증 기관이 서명할 수 없습니다. Google 관리형 SSL 인증서 사용의 모든 단계를 완료했는지 확인합니다.

상태가 PROVISIONING_FAILED_PERMANENTLY로 바뀔 때까지 Google Cloud에서 프로비저닝을 재시도합니다.
PROVISIONING_FAILED_PERMANENTLY Google 관리형 인증서가 생성되었지만 DNS 또는 부하 분산기 구성 문제로 인해 인증 기관에서 서명할 수 없습니다. 이 상태에서는 Google Cloud가 프로비저닝을 다시 시도하지 않습니다.

대체 Google 관리형 SSL 인증서를 만들고 대체 인증서가 부하 분산기의 대상 프록시와 연결되어 있는지 확인합니다. Google 관리형 SSL 인증서 사용의 모든 단계를 확인하거나 완료합니다. 그런 다음 프로비저닝에 영구적으로 실패한 인증서를 삭제할 수 있습니다.

Google 관리형 SSL 인증서 도메인 상태

도메인 상태를 확인하려면 다음 명령어를 실행하세요.

gcloud beta compute ssl-certificates describe CERTIFICATE_NAME \
    --global \
    --format="get(managed.domainStatus)"

이 표에 도메인 상태의 값이 설명되어 있습니다.

도메인 상태 설명
PROVISIONING Google 관리형 인증서가 도메인에 대해 생성됩니다. Google Cloud는 인증 기관과 협력하여 인증서에 서명합니다.
Google 관리형 인증서를 프로비저닝하는 데 최대 60분이 걸릴 수 있습니다.
ACTIVE Google 관리형 SSL 인증서는 인증 기관에서 가져옵니다. 이 도메인에 대한 프로비저닝이 완료되었습니다. 부하 분산기에서 인증서를 사용할 수 있기까지 추가로 30분이 더 걸릴 수 있습니다.
FAILED_NOT_VISIBLE 도메인에 대한 인증서 프로비저닝이 실패했습니다. 다음 중 하나가 문제일 수 있습니다. 관리 상태는 PROVISIONING이지만 Google Cloud는 인증서를 프로비저닝하려고 계속 시도합니다.
FAILED_CAA_CHECKING 도메인의 CAA 레코드 구성 문제로 인해 인증서 프로비저닝에 실패했습니다. 올바른 절차를 따랐는지 확인합니다.
FAILED_CAA_FORBIDDEN 도메인의 CAA 레코드에서 Google Cloud가 사용해야 하는 CA를 지정하지 않아 인증서 프로비저닝에 실패했습니다. 올바른 절차를 따랐는지 확인합니다.
FAILED_RATE_LIMITED 인증 기관에서 비율 제한 인증서 서명 요청을 사용하여 인증서 프로비저닝에 실패했습니다. 대체 Google 관리형 SSL 인증서 만들기를 다시 시도하거나 Google Cloud 지원팀에 문의하세요.

Google 관리형 인증서 갱신

Google에서 도메인이 여러 개 있는 관리형 인증서를 갱신할 때 도메인 또는 하위 도메인이 부하 분산기의 IP 주소를 가리키지 않으면 갱신 프로세스가 실패합니다. 관리형 인증서가 프로비저닝되면 갱신이 실패하지 않도록 모든 도메인과 하위 도메인이 계속 부하 분산기의 IP 주소를 가리키는지 확인합니다.

자체 관리형 SSL 인증서 문제 해결

인증서를 파싱할 수 없음

Google Cloud에는 PEM 형식의 인증서가 필요합니다. 인증서가 PEM 형식인 경우 다음을 확인합니다.

CERTIFICATE_FILE을 인증서 파일의 경로로 바꾸고 다음 OpenSSL 명령어를 사용하여 인증서의 유효성을 검사할 수 있습니다.

openssl x509 -in CERTIFICATE_FILE -text -noout

OpenSSL에서 인증서를 파싱할 수 없는 경우:

일반 이름 또는 주체 대체 이름 누락

Google Cloud를 사용하려면 인증서에 일반 이름(CN) 또는 주체 대체 이름(SAN) 속성이 있어야 합니다. 자세한 내용은 CSR 만들기를 참조하세요.

두 속성이 모두 없는 경우 자체 관리형 인증서를 만들려고 하면 다음과 같은 오류 메시지가 나타납니다.

ERROR: (gcloud.compute.ssl-certificates.create) Could not fetch resource:
 - The SSL certificate is missing a Common Name(CN) or Subject Alternative
   Name(SAN).

비공개 키를 파싱할 수 없음

Google Cloud에는 비공개 키 기준을 충족하는 PEM 형식의 비공개 키가 필요합니다.

다음 OpenSSL 명령어를 사용하여 비공개 키의 유효성을 검사할 수 있습니다. 이때 PRIVATE_KEY_FILE을 비공개 키의 경로로 바꿉니다.

    openssl rsa -in PRIVATE_KEY_FILE -check

다음 응답은 비공개 키에 문제가 있음을 나타냅니다.

  • unable to load Private Key
  • Expecting: ANY PRIVATE KEY
  • RSA key error: n does not equal p q
  • RSA key error: d e not congruent to 1
  • RSA key error: dmp1 not congruent to d
  • RSA key error: dmq1 not congruent to d
  • RSA key error: iqmp not inverse of q

이 문제를 해결하려면 새 비공개 키와 인증서를 만들어야 합니다.

암호가 포함된 비공개 키

OpenSSL에서 암호를 묻는 메시지가 표시되면 Google Cloud에서 암호를 사용하기 전에 비공개 키에서 암호를 삭제해야 합니다. 다음 OpenSSL 명령어를 사용할 수 있습니다.

openssl rsa -in PRIVATE_KEY_FILE \
    -out REPLACEMENT_PRIVATE_KEY_FILE

자리표시자를 유효한 값으로 바꿉니다.

  • PRIVATE_KEY_FILE: 암호로 보호되는 비공개 키의 경로입니다.
  • REPLACEMENT_PRIVATE_KEY_FILE: 일반 텍스트 비공개 키의 복사본을 저장할 파일 경로입니다.

중간 인증서 만료

중간 인증서가 서버(리프) 인증서 전에 만료되면 CA가 권장 사항을 따르지 않을 수 있습니다.

중간 인증서가 만료되면 Google Cloud에서 사용되는 리프 인증서가 무효화될 수 있습니다. 다음과 같이 SSL 클라이언트에 따라 달라집니다.

  • 일부 SSL 클라이언트는 리프 인증서의 만료 시간만 확인하고 만료된 중간 인증서를 무시합니다.
  • 일부 SSL 클라이언트는 만료된 중간 인증서가 있는 체인을 유효하지 않은 것으로 취급하고 경고를 표시합니다.

이 문제를 해결하려면 다음 단계를 따르세요.

  1. CA가 새 중간 인증서로 전환될 때까지 기다립니다.
  2. 새 인증서를 요청합니다.
  3. 새 키를 사용하여 새 인증서를 다시 업로드합니다.

또한 CA에서 중간 인증서의 교차 서명을 허용할 수도 있습니다. CA에 문의하여 확인합니다.

RSA 공개 지수가 너무 큽니다

RSA 공개 지수가 65537보다 크면 다음 오류 메시지가 표시됩니다. RFC 4871에 지정된 대로 65537을 사용해야 합니다.

ERROR: (gcloud.compute.ssl-certificates.create) Could not fetch resource:
 - The RSA public exponent is too large.