다음을 통해 공유


Azure Container Apps의 사용자 지정 도메인 이름 및 무료 관리형 인증서

Azure Container Apps를 사용하면 하나 이상의 사용자 지정 도메인을 Container Apps에 바인딩할 수 있습니다. 사용자 지정 도메인에 대한 무료 관리형 인증서를 자동으로 구성할 수 있습니다.

사용자 고유의 인증서를 사용하여 사용자 지정 도메인을 설정하려면 Azure Container Apps의 사용자 지정 도메인 이름 및 인증서를 참조하세요.

참고 항목

사용자 지정 환경 DNS 접미사를 구성하는 경우 이 접미사가 포함된 사용자 지정 도메인을 컨테이너 앱에 추가할 수 없습니다.

무료 인증서 요구 사항

Azure Container Apps는 사용자 지정 도메인에 대한 무료 관리형 인증서를 제공합니다. 앱이 관리되는 인증서에 대한 요구 사항을 계속 충족하는 한 이 TLS/SSL 서버 인증서가 자동으로 갱신됩니다.

요구 사항은 다음과 같습니다.

  • HTTP 수신을 사용하도록 설정하고 컨테이너 앱에 공개적으로 액세스할 수 있는지 확인합니다.

  • Container Apps 환경의 IP 주소를 가리키는 Apex 도메인에 대한 A 레코드가 있어야 합니다.

  • 컨테이너 앱의 자동 생성 도메인 이름에 직접 매핑되는 하위 도메인에 대한 CNAME 레코드를 설정합니다. 중간 CNAME 값에 매핑하면 인증서 발급과 갱신이 차단됩니다. CNAME 값의 예로는 Traffic Manager, Cloudflare 및 이와 유사한 서비스가 있습니다.

참고 항목

인증서 발급 및 후속 갱신이 성공적으로 진행되도록 하려면 관리되는 인증서가 할당될 때 항상 모든 요구 사항을 충족해야 합니다.

사용자 지정 도메인 및 관리되는 인증서 추가

  1. Azure Portal에서 컨테이너 앱으로 이동합니다.

  2. 설정 섹션에서 수신을 선택하여 앱에서 HTTP 수신이 사용하도록 설정되었는지 확인합니다. 수신이 사용하도록 설정되지 않은 경우 다음 단계에 따라 사용하도록 설정합니다.

    1. HTTP 수신사용으로 설정합니다.
    2. 원하는 수신 트래픽 설정을 선택합니다.
    3. 대상 포트를 입력합니다.
    4. 저장을 선택합니다.
  3. 설정 섹션에서 사용자 지정 도메인을 선택합니다.

  4. 사용자 지정 도메인 추가를 선택합니다.

  5. 사용자 지정 도메인 및 인증서 추가 창의 TLS/SSL 인증서에서 관리되는 인증서를 선택합니다.

  6. 도메인에 추가하려는 도메인을 입력합니다.

  7. 도메인 형식에 따라 호스트 이름 레코드 종류를 선택합니다.

    도메인 유형 레코드 종류 주의
    apex 도메인 A 레코드 apex 도메인은 도메인의 루트 수준에 있는 도메인입니다. 예를 들어, DNS 영역이 contoso.com이면 contoso.com이 apex 도메인입니다.
    하위 도메인 CNAME 하위 도메인은 다른 도메인의 일부인 도메인입니다. 예를 들어, DNS 영역이 contoso.com인 경우 www.contoso.com은 해당 영역에서 구성할 수 있는 하위 도메인의 예입니다.
  8. 도메인을 호스팅하는 DNS 공급자를 사용하여 도메인 유효성 검사 섹션에 표시된 값을 사용하여 선택한 호스트 이름 레코드 종류를 기반으로 DNS 레코드를 만듭니다. 레코드는 도메인을 컨테이너 앱으로 가리키고 사용자가 소유자인지 확인합니다.

    • A 레코드를 선택한 경우 다음 DNS 레코드를 만듭니다.

      레코드 종류 Host
      A @ Container Apps 환경의 IP 주소입니다.
      TXT asuid 도메인 확인 코드입니다.
    • CNAME을 선택한 경우 다음 DNS 레코드를 만듭니다.

      레코드 종류 Host
      CNAME 하위 도메인(예: www) 컨테이너 앱의 생성된 도메인입니다.
      TXT asuid. 뒤에 하위 도메인이 옵니다(예: asuid.www) 도메인 확인 코드입니다.
  9. 유효성 확인을 선택합니다.

  10. 유효성 검사가 성공하면 추가를 선택합니다.

    인증서를 발급하고 컨테이너 앱에 도메인을 추가하는 데 몇 분 정도 걸릴 수 있습니다.

  11. 작업이 완료되면 사용자 지정 도메인 목록에 도메인 이름이 보안됨 상태로 표시됩니다. 도메인으로 이동하여 액세스 가능한지 확인합니다.

Container Apps는 apex 도메인 및 하위 도메인을 지원합니다. 각 도메인 유형에는 다른 DNS 레코드 형식 및 유효성 검사 방법이 필요합니다.

도메인 유형 레코드 종류 유효성 검사 방법 주의
apex 도메인 A 레코드 HTTP apex 도메인은 도메인의 루트 수준에 있는 도메인입니다. 예를 들어, DNS 영역이 contoso.com이면 contoso.com이 apex 도메인입니다.
하위 도메인 CNAME CNAME 하위 도메인은 다른 도메인의 일부인 도메인입니다. 예를 들어, DNS 영역이 contoso.com인 경우 www.contoso.com은 해당 영역에서 구성할 수 있는 하위 도메인의 예입니다.
  1. Azure CLI를 사용하여 Azure에 로그인합니다.

    az login
    
  2. 다음으로, CLI용 Azure Container Apps 확장을 설치합니다.

    az extension add --name containerapp --upgrade
    
  3. 컨테이너 앱에 HTTP 수신이 사용하도록 설정되어 있는지 확인합니다.

    az containerapp ingress show -n <CONTAINER_APP_NAME> -g <RESOURCE_GROUP_NAME>
    

    수신이 사용하도록 설정되지 않은 경우 다음 단계에 따라 사용하도록 설정합니다.

    az containerapp ingress enable -n <CONTAINER_APP_NAME> -g <RESOURCE_GROUP_NAME> \
            --type external --target-port <TARGET_PORT> --transport auto
    

    <CONTAINER_APP_NAME>을 컨테이너 앱의 이름으로 바꾸고, <RESOURCE_GROUP_NAME>을 컨테이너 앱이 포함된 리소스 그룹의 이름으로 바꾸고, <TARGET_PORT>를 컨테이너 앱이 수신 대기 중인 포트로 바꿉니다.

  4. apex 도메인을 구성하는 경우 Container Apps 환경의 IP 주소를 가져옵니다.

    az containerapp env show -n <ENVIRONMENT_NAME> -g <RESOURCE_GROUP_NAME> -o tsv --query "properties.staticIp"
    

    <ENVIRONMENT_NAME>을 환경 이름으로 바꾸고 <RESOURCE_GROUP_NAME>을 환경이 포함된 리소스 그룹의 이름으로 바꿉니다.

  5. 하위 도메인을 구성하는 경우 컨테이너 앱의 자동 생성된 도메인을 가져옵니다.

    az containerapp show -n <CONTAINER_APP_NAME> -g <RESOURCE_GROUP_NAME> -o tsv --query "properties.configuration.ingress.fqdn"
    

    <CONTAINER_APP_NAME>을 컨테이너 앱의 이름으로 바꾸고, <RESOURCE_GROUP_NAME>을 컨테이너 앱이 포함된 리소스 그룹의 이름으로 바꿉니다.

  6. 도메인 확인 코드를 가져옵니다.

    az containerapp show -n <CONTAINER_APP_NAME> -g <RESOURCE_GROUP_NAME> -o tsv --query "properties.customDomainVerificationId"
    

    <CONTAINER_APP_NAME>을 컨테이너 앱의 이름으로 바꾸고, <RESOURCE_GROUP_NAME>을 컨테이너 앱이 포함된 리소스 그룹의 이름으로 바꿉니다.

  7. 도메인을 호스팅하는 DNS 공급자를 사용하여 도메인 유효성 검사 섹션에 표시된 값을 사용하여 선택한 레코드 유형에 따라 DNS 레코드를 만듭니다. 레코드는 도메인을 컨테이너 앱으로 가리키고 사용자가 해당 앱을 소유하고 있는지 확인합니다. 설정은 프라이빗 엔드포인트(미리 보기) 기능을 사용하여 사용자 지정 도메인을 사용하는지 여부에 따라 달라집니다.

    • A 레코드를 선택한 경우 다음 DNS 레코드를 만듭니다.

      레코드 종류 Host
      A @ Container Apps 환경의 IP 주소입니다.
      TXT asuid 도메인 확인 코드입니다.
    • CNAME을 선택한 경우 다음 DNS 레코드를 만듭니다.

      레코드 종류 Host
      CNAME 하위 도메인(예: www) 컨테이너 앱의 생성된 도메인입니다.
      TXT asuid. 뒤에 하위 도메인이 옵니다(예: asuid.www) 도메인 확인 코드입니다.
  8. 컨테이너 앱에 도메인을 추가합니다.

    az containerapp hostname add --hostname <DOMAIN_NAME> -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME>
    

    <DOMAIN_NAME>을 추가하려는 도메인 이름으로 바꾸고, <RESOURCE_GROUP_NAME>을 컨테이너 앱이 포함된 리소스 그룹의 이름으로 바꾸고, <CONTAINER_APP_NAME>을 컨테이너 앱의 이름으로 바꿉니다.

  9. 관리되는 인증서를 구성하고 컨테이너 앱에 도메인을 바인딩합니다.

    az containerapp hostname bind --hostname <DOMAIN_NAME> -g <RESOURCE_GROUP_NAME> -n <CONTAINER_APP_NAME> --environment <ENVIRONMENT_NAME> --validation-method <VALIDATION_METHOD>
    

    <DOMAIN_NAME>을 추가하려는 도메인 이름으로 바꾸고, <RESOURCE_GROUP_NAME>을 컨테이너 앱이 포함된 리소스 그룹의 이름으로 바꾸고, <CONTAINER_APP_NAME>을 컨테이너 앱의 이름으로 바꾸고, <ENVIRONMENT_NAME>을 환경 이름으로 바꿉니다.

    • A 레코드를 구성하는 경우 <VALIDATION_METHOD>HTTP로 바꿉니다.
    • CNAME을 구성하는 경우 <VALIDATION_METHOD>CNAME으로 바꿉니다.

    인증서를 발급하고 컨테이너 앱에 도메인을 추가하는 데 몇 분 정도 걸릴 수 있습니다.

  10. 작업이 완료되면 도메인으로 이동하여 액세스 가능한지 확인합니다.

다음 단계