다음을 통해 공유


Azure App Service에서 TLS/SSL 인증서 추가 및 관리

참고 항목

2024년 6월 1일부터, 새로 만들어진 모든 App Service 앱에는 명명 규칙 <app-name>-<random-hash>.<region>.azurewebsites.net을 사용하여 고유한 기본 호스트 이름을 생성할 수 있는 옵션이 제공됩니다. 기존 앱 이름은 변경되지 않은 상태로 유지됩니다.

예: myapp-ds27dh7271aah175.westus-01.azurewebsites.net

자세한 내용은 App Service 리소스의 고유 기본 호스트 이름을 참조하세요.

애플리케이션 코드에서 사용하거나 확장성이 높은 자체 패치 웹 호스팅 서비스를 제공하는 Azure App Service에서 사용자 지정 DNS 이름을 보호하기 위해 디지털 보안 인증서를 추가할 수 있습니다. 현재는 TLS(전송 계층 보안) 인증서(이전에 SSL(Secure Socket Layer) 인증서라고도 함)라고 하는 이러한 개인 또는 공용 인증서를 사용하면 브라우저, 방문하는 웹 사이트 및 웹 사이트 서버 간에 전송된 데이터를 암호화하여 인터넷 연결을 보호할 수 있습니다.

다음 표에는 App Service에 인증서를 추가할 수 있는 옵션이 나와 있습니다.

옵션 설명
무료 App Service 관리형 인증서 만들기 App Service에서 사용자 지정 도메인에 대한 보안을 강화해야 하는 경우 무료로 쉽게 사용할 수 있는 프라이빗 인증서입니다.
App Service 인증서 가져오기 Azure에서 관리하는 프라이빗 인증서입니다. 간편한 자동 인증서 관리의와 유연한 갱신 및 내보내기 옵션이 결합되었습니다.
Key Vault에서 인증서 가져오기 Azure Key Vault를 사용하여 PKCS12 인증서를 관리하는 경우에 유용합니다. 프라이빗 인증서 요구 사항을 참조하세요.
프라이빗 인증서 업로드 타사 공급자의 프라이빗 인증서가 이미 있는 경우 해당 인증서를 업로드할 수 있습니다. 프라이빗 인증서 요구 사항을 참조하세요.
공용 인증서 업로드 공용 인증서는 사용자 지정 도메인을 보호하는 데 사용되지 않지만, 원격 리소스에 액세스할 때 필요한 경우 공용 인증서를 코드에 로드할 수 있습니다.

필수 조건

프라이빗 인증서 요구 사항

무료 App Service 관리형 인증서App Service 인증서는 이미 App Service의 요구 사항을 충족합니다. 프라이빗 인증서를 App Service에 업로드하거나 가져오기로 선택하는 경우 인증서가 다음 요구 사항을 충족해야 합니다.

  • 삼중 DES를 사용하여 암호화된 암호로 보호된 PFX 파일로 내보냅니다.
  • 최소 2048비트 개인 키 포함
  • 인증서 체인의 모든 중간 인증서와 루트 인증서를 포함합니다.

TLS 바인딩에서 사용자 지정 도메인을 보호하려면 인증서가 다음과 같은 추가 요구 사항을 충족해야 합니다.

  • 서버 인증용 확장 키 사용 포함(OID = 1.3.6.1.5.5.7.3.1)
  • 신뢰할 수 있는 인증 기관에서 서명됨

참고 항목

ECC(타원 곡선 암호화) 인증서는 App Service에서 사용할 수 있지만 이 문서에서는 다루지 않습니다. ECC 인증서를 만드는 정확한 단계는 인증 기관을 사용하세요.

참고 항목

앱에 프라이빗 인증서를 추가하면 인증서는 내부적으로 webspace라고 하는 App Service 요금제의 리소스 그룹, 지역, 운영 체제 조합에 바인딩된 배포 단위에 저장됩니다. 이렇게 하면 동일한 리소스 그룹, 지역, OS 조합의 다른 앱에서 인증서에 액세스할 수 있습니다. App Service에 업로드되거나 가져온 프라이빗 인증서는 동일한 배포 단위의 App Services와 공유됩니다.

webspace당 최대 1,000개의 프라이빗 인증서를 추가할 수 있습니다.

무료 관리형 인증서 만들기

무료 App Service 관리 인증서는 App Service에서 사용자 지정 DNS 이름을 보호하는 데 도움이 되는 턴키 솔루션입니다. 사용자 작업 없이 이 TLS/SSL 서버 인증서는 App Service에서 완전 관리되며 설정한 필수 구성 요소가 동일하게 유지되는 한 만료 45일 전까지 6개월 간격으로 계속 자동으로 갱신됩니다. 연결된 모든 바인딩은 갱신된 인증서로 업데이트됩니다. 인증서를 만들고 사용자 지정 도메인에 바인딩합니다. 그러면 App Service에서 나머지 작업을 수행합니다.

Important

관리되는 무료 인증서를 만들기 전에 앱의 필수 구성 요소를 충족하는지 확인합니다.

무료 인증서는 DigiCert에서 발급됩니다. 일부 도메인의 경우 0 issue digicert.com 값으로 CAA 도메인 레코드를 만들어 DigiCert를 인증서 발급자로 명시적으로 허용해야 합니다.

Azure는 사용자를 대신하여 인증서를 완전 관리하므로 루트 발급자를 포함하여 관리되는 인증서의 모든 측면을 언제든지 변경할 수 있습니다. 사용자가 이러한 변경 사항을 제어할 수 없습니다. 관리되는 인증서나 인증서 계층 구조 일부에 대한 하드 종속성과 "고정" 사례 인증서를 피해야 합니다. 인증서 고정 동작이 필요한 경우 이 문서에서 사용 가능한 다른 방법을 사용하여 사용자 지정 도메인에 인증서를 추가합니다.

무료 인증서에는 다음과 같은 제한이 있습니다.

  • 와일드카드 인증서를 지원하지 않습니다.
  • 인증서 지문을 사용하여 클라이언트 인증서로 사용을 지원하지 않습니다. 인증서 지문은 사용 중단되어 제거될 예정입니다.
  • 프라이빗 DNS를 지원하지 않습니다.
  • 내보낼 수 없습니다.
  • App Service Environment에서 지원되지 않습니다.
  • 영숫자 문자, 대시(-) 및 마침표(.)만 지원합니다.
  • 최대 64자의 사용자 지정 도메인만 지원됩니다.
  • 웹앱의 IP 주소를 가리키는 A 레코드가 있어야 합니다.
  • 공개적으로 액세스할 수 있는 앱에 있어야 합니다.
  • Traffic Manager와 통합된 루트 도메인에서 지원되지 않습니다.
  • 성공적으로 인증서를 발급하고 갱신하려면 위 모든 사항을 충족해야 합니다.
  1. Azure Portal의 왼쪽 메뉴에서 App Services><app-name>을 선택합니다.

  2. 앱의 탐색 메뉴에서 인증서를 선택합니다. 관리되는 인증서 창에서 인증서 추가를 선택합니다.

    '인증서', '관리형 인증서', '인증서 추가'가 선택된 앱 메뉴의 스크린샷.

  3. 무료 인증서의 사용자 지정 도메인을 선택한 다음, 유효성 검사를 선택합니다. 유효성 검사가 완료되면 추가를 선택합니다. 지원되는 사용자 지정 도메인마다 관리되는 인증서를 하나씩만 만들 수 있습니다.

    작업이 완료되면 관리되는 인증서 목록에 인증서가 표시됩니다.

    새 인증서가 나열된 관리되는 인증서 창의 스크린샷.

  4. 이 인증서를 사용하여 사용자 지정 도메인에 대한 보안을 제공하려면 여전히 인증서 바인딩을 만들어야 합니다. Azure App Service에서 TLS/SSL 바인딩으로 사용자 지정 DNS 이름 보호의 단계를 따릅니다.

App Service 인증서 가져오기

App Service 인증서를 가져오려면 먼저 App Service 인증서를 구입 및 구성한 다음, 여기의 단계를 수행합니다.

  1. Azure Portal의 왼쪽 메뉴에서 App Services><app-name>을 선택합니다.

  2. 앱의 탐색 메뉴에서 인증서>자체 인증서 사용(.pfx)>인증서 추가를 선택합니다.

  3. 원본에서 App Service 인증서 가져오기를 선택합니다.

  4. App Service 인증서에서 방금 만든 인증서를 선택합니다.

  5. 인증서 식별 이름에서 앱에서 인증서 이름을 지정합니다.

  6. 유효성 확인을 선택합니다. 유효성 검사가 성공하면 추가를 선택합니다.

    '인증서', '자체 인증서 가져오기(.pfx)', 'App Service 인증서 가져오기'가 선택된 앱 관리 페이지와 **유효성 검사** 단추가 있는 필드가 채워진 '프라이빗 키 인증서 추가' 페이지의 스크린샷.

    작업이 완료되면 자체 인증서 사용 목록에 인증서가 표시됩니다.

    구매한 인증서가 나열된 '자체 인증서 가져오기(.pfx)' 창의 스크린샷.

  7. 이 인증서를 사용하여 사용자 지정 도메인을 보호하려면 여전히 인증서 바인딩을 만들어야 합니다. Azure App Service에서 TLS/SSL 바인딩으로 사용자 지정 DNS 이름 보호의 단계를 따릅니다.

Key Vault에서 인증서 가져오기

Azure Key Vault를 사용하여 인증서를 관리하는 경우 요구 사항이 충족될 때 Key Vault에서 PKCS12 인증서를 App Service으로 가져올 수 있습니다.

자격 증명 모음에서 읽을 App Service 권한 부여

기본적으로 App Service 리소스 공급자는 Key Vault에 대한 액세스 권한이 없습니다. 인증서 배포에 키 자격 증명 모음을 사용하려면 리소스 공급자(App Service)의 키 자격 증명 모음에 대한 읽기 액세스 권한을 부여해야 합니다. 액세스 정책 또는 RBAC를 사용하여 액세스 권한을 부여할 수 있습니다.

리소스 공급자 서비스 주체 앱 ID/담당자 키 자격 증명 모음 RBAC 역할
Microsoft Azure App Service 또는 Microsoft.Azure.WebSites 퍼블릭 Azure 클라우드 환경의 경우 - abfa0a7c-a6b6-4736-8310-5855508787cd

Azure Government 클라우드 환경의 경우 - 6a02c803-dafd-4136-b4c3-5a6f318b4714
인증서 사용자

서비스 주체 앱 ID 또는 담당자 값은 App Service 리소스 공급자의 ID입니다. 액세스 정책을 사용하여 App Service 리소스 공급자에 대한 키 자격 증명 모음 권한을 부여하는 방법을 알아보려면 Azure 역할 기반 액세스 제어 설명서를 사용하여 Key Vault 키, 인증서 및 비밀에 대한 액세스 제공을 참조하세요.

참고 항목

키 자격 증명 모음에서 이러한 RBAC 권한을 삭제하지 마세요. 그럴 경우 App Service에서 웹앱을 최신 키 자격 증명 모음 인증서 버전과 동기화할 수 없습니다.

자격 증명 모음에서 앱으로 인증서 가져오기

  1. Azure Portal의 왼쪽 메뉴에서 App Services><app-name>을 선택합니다.

  2. 앱의 탐색 메뉴에서 인증서>자체 인증서 사용(.pfx)>인증서 추가를 선택합니다.

  3. 원본에서 Key Vault에서 가져오기를 선택합니다.

  4. 키 자격 증명 모음 인증서 선택을 선택합니다.

    '인증서', '자체 인증서 가져오기(.pfx)', 'Key Vault에서 가져오기'가 선택된 앱 관리 페이지의 스크린샷.

  5. 인증서를 선택하는 데 도움이 필요하면 다음 표를 사용합니다.

    설정 설명
    구독 키 자격 증명 모음과 연결된 구독입니다.
    Key vault 가져오려는 인증서가 있는 자격 증명 모음입니다.
    MSSQLSERVER에 대한 프로토콜 속성 이 목록에서 자격 증명 모음에 있는 PKCS12 인증서를 선택합니다. 자격 증명 모음의 모든 PKCS12 인증서가 해당 지문과 함께 나열되지만, 모두 App Service에서 지원되지는 않습니다.
  6. 선택이 끝나면 선택, 유효성 검사, 추가를 차례로 선택합니다.

    작업이 완료되면 자체 인증서 사용 목록에 인증서가 표시됩니다. 오류가 발생하여 가져오기에 실패하는 경우 인증서가 App Service에 대한 요구 사항을 충족하지 않는 것입니다.

    가져온 인증서가 나열된 '자체 인증서 가져오기(.pfx)' 창의 스크린샷.

    참고 항목

    Key Vault의 인증서를 새 인증서로 업데이트하면 App Service는 24시간 이내에 인증서를 자동으로 동기화합니다.

  7. 이 인증서를 사용하여 사용자 지정 도메인을 보호하려면 인증서 바인딩을 만들어야 합니다. Azure App Service에서 TLS/SSL 바인딩으로 사용자 지정 DNS 이름 보호의 단계를 따릅니다.

프라이빗 인증서 업로드

인증서 공급자로부터 인증서를 가져온 후 이 섹션의 단계를 수행하면 인증서를 App Service에 사용할 수 있습니다.

중간 인증서 병합

인증 기관에서 여러 인증서를 인증서 체인에 제공하면 인증서를 같은 순서대로 병합해야 합니다.

  1. 텍스트 편집기에서 받은 각 인증서를 엽니다.

  2. 병합된 인증서를 저장하려면 mergedcertificate.crt라는 파일을 만듭니다.

  3. 각 인증서의 콘텐츠를 이 파일에 복사합니다. 인증서 체인에서 지정한 인증서 시퀀스를 따라 인증서로 시작하고 루트 인증서로 끝나야 합니다. 예를 들면 다음과 같습니다.

    -----BEGIN CERTIFICATE-----
    <your entire Base64 encoded SSL certificate>
    -----END CERTIFICATE-----
    
    -----BEGIN CERTIFICATE-----
    <The entire Base64 encoded intermediate certificate 1>
    -----END CERTIFICATE-----
    
    -----BEGIN CERTIFICATE-----
    <The entire Base64 encoded intermediate certificate 2>
    -----END CERTIFICATE-----
    
    -----BEGIN CERTIFICATE-----
    <The entire Base64 encoded root certificate>
    -----END CERTIFICATE-----
    

병합된 프라이빗 인증서를 PFX로 내보내기

이제 인증서 요청을 생성하는 데 사용된 프라이빗 키로 병합된 TLS/SSL 인증서를 내보냅니다. OpenSSL을 사용하여 인증서 요청을 생성한 경우 프라이빗 키 파일을 만든 것입니다.

참고 항목

OpenSSL v3에서 기본 암호가 3DES에서 AES256으로 변경되었지만 명령줄 -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -macalg SHA1에서 재정의할 수 있습니다. OpenSSL v1은 3DES를 기본값으로 사용하므로 생성된 PFX 파일은 특별한 수정 없이 지원됩니다.

  1. 인증서를 PFX 파일로 내보내려면 다음 명령을 실행하지만 자리 표시자 <private-key-file><merged-certificate-file>을 프라이빗 키와 병합된 인증서 파일의 경로로 바꿉니다.

    openssl pkcs12 -export -out myserver.pfx -inkey <private-key-file> -in <merged-certificate-file>  
    
  2. 메시지가 표시되면 내보내기 작업의 암호를 지정합니다. 나중에 TLS/SSL 인증서를 App Service로 업로드할 때 이 암호를 제공해야 합니다.

  3. IIS 또는 Certreq.exe를 사용하여 인증서 요청을 생성한 경우 인증서를 로컬 컴퓨터에 설치한 다음, 인증서를 PFX로 내보냅니다.

App Service에 인증서 업로드

이제 인증서를 App Service에 업로드할 준비가 완료되었습니다.

  1. Azure Portal의 왼쪽 메뉴에서 App Services><app-name>을 선택합니다.

  2. 앱의 탐색 메뉴에서 인증서>자체 인증서 사용(.pfx)>인증서 업로드를 선택합니다.

    '인증서', '자체 인증서(.pfx) 가져오기', '인증서 업로드'가 선택된 앱 관리 페이지의 스크린샷.

  3. .pfx 인증서를 업로드하는 데 도움이 필요하면 다음 표를 사용합니다.

    설정 설명
    PFX 인증서 파일 .pfx 파일을 선택합니다.
    인증서 암호 PFX 파일을 내보낼 때 만든 암호를 입력합니다.
    인증서 식별 이름 웹앱에 표시될 인증서 이름입니다.
  4. 선택이 끝나면 선택, 유효성 검사, 추가를 차례로 선택합니다.

    작업이 완료되면 자체 인증서 사용 목록에 인증서가 표시됩니다.

    업로드된 인증서가 나열된 '자체 인증서 가져오기' 창의 스크린샷.

  5. 이 인증서를 사용하여 사용자 지정 도메인에 대한 보안을 제공하려면 여전히 인증서 바인딩을 만들어야 합니다. Azure App Service에서 TLS/SSL 바인딩으로 사용자 지정 DNS 이름 보호의 단계를 따릅니다.

공용 인증서 업로드

공용 인증서는 .cer 형식으로 지원됩니다.

참고 항목

앱에 공용 인증서를 업로드하면 업로드된 앱에서만 액세스할 수 있습니다. 공용 인증서는 액세스가 필요한 각 개별 웹앱에 업로드해야 합니다. 인증서 및 App Service Environment에 대한 설명서에서 App Service Environment 관련 시나리오를 확인할 수 있습니다.

App Service 요금제당 최대 1,000개의 공용 인증서를 업로드할 수 있습니다.

  1. Azure Portal의 왼쪽 메뉴에서 App Services><app-name>을 선택합니다.

  2. 앱의 탐색 메뉴에서 인증서>공개 키 인증서(.cer)>인증서 추가를 선택합니다.

  3. .cer 인증서를 업로드하는 데 도움이 필요하면 다음 표를 사용합니다.

    설정 설명
    CER 인증서 파일 .cer 파일을 선택합니다.
    인증서 식별 이름 웹앱에 표시될 인증서 이름입니다.
  4. 완료되면 추가를 선택합니다.

    앱 관리 페이지의 스크린샷. 업로드할 공개 키 인증서와 이름이 표시됩니다.

  5. 인증서가 업로드되면 인증서 지문을 복사한 다음, 인증서에 액세스할 수 있도록 설정을 검토합니다.

만료되는 인증서 갱신

인증서가 만료되기 전에 갱신된 인증서를 App Service에 추가하고, 프로세스가 인증서 형식에 따라 달라지는 경우 인증서 바인딩을 업데이트해야 합니다. 예를 들어 App Service 인증서를 포함하여 Key Vault에서 가져온 인증서는 24시간마다 App Service에 자동으로 동기화되며 인증서를 갱신할 때 TLS/SSL 바인딩을 업데이트합니다. 업로드된 인증서의 경우 자동 바인딩 업데이트가 없습니다. 시나리오에 따라 해당 섹션을 검토합니다.

업로드된 인증서 갱신

만료되는 인증서를 교체하면 새 인증서로 인증서 바인딩을 업데이트하는 방법은 사용자 환경에 부정적인 영향을 줄 수 있습니다. 예를 들어 바인딩이 IP 기반이라고 해도 바인딩을 삭제하면 인바운드 IP 주소가 변경될 수 있습니다. 이 결과는 IP 기반 바인딩에 이미 있는 인증서를 갱신할 때 특히 강력합니다. 앱의 IP 주소가 변경되지 않게 하고 HTTPS 오류로 인한 앱 가동 중지 시간을 방지하려면 다음 단계를 지정된 순서대로 수행합니다.

  1. 새 인증서를 업로드합니다.

  2. 앱의 사용자 지정 도메인 페이지로 이동하여 ... 단추를 선택한 다음 바인딩 업데이트를 선택합니다.

  3. 새 인증서를 선택한 다음 업데이트를 선택합니다.

  4. 기존 인증서를 삭제합니다.

Key Vault에서 가져온 인증서 갱신

참고 항목

App Service 인증서를 갱신하려면 App Service 인증서 갱신을 참조하세요.

Key Vault에서 App Service로 가져온 인증서를 갱신하려면 Azure Key Vault 인증서 갱신을 검토하세요.

키 자격 증명 모음 내에서 인증서가 갱신되면 App Service에서 새 인증서를 자동으로 동기화하고 24시간 이내에 적용 가능한 인증서 바인딩을 업데이트합니다. 수동으로 동기화하려면 다음 단계를 수행합니다.

  1. 앱의 인증서 페이지로 이동합니다.

  2. 자체 인증서 사용(.pfx)에서 가져온 키 자격 증명 모음 인증서의 ... 단추를 선택한 다음 동기화를 선택합니다.

자주 묻는 질문

앱에 BYOL(Bring Your Own Certificate) 추가를 자동화하려면 어떻게 해야 하나요?

내 앱의 인바운드 TLS에 프라이빗 CA(인증 기관) 인증서를 사용할 수 있나요?

App Service Environment 버전 3에서 인바운드 TLS에 프라이빗 CA 인증서를 사용할 수 있습니다. App Service(다중 테넌트)에서는 불가능합니다. App Service 다중 테넌트와 단일 테넌트에 대한 자세한 내용은 App Service Environment v3 및 App Service 공용 다중 테넌트 비교를 참조하세요.

앱에서 프라이빗 CA 클라이언트 인증서를 사용하여 아웃바운드 전화를 걸 수 있나요?

이는 다중 테넌트 App Service의 Windows 컨테이너 앱에만 지원됩니다. 또한 App Service Environment 버전 3의 코드 기반 및 컨테이너 기반 앱 모두에서 프라이빗 CA 클라이언트 인증서를 사용하여 아웃바운드 호출을 할 수 있습니다. App Service 다중 테넌트와 단일 테넌트에 대한 자세한 내용은 App Service Environment v3 및 App Service 공용 다중 테넌트 비교를 참조하세요.

App Service 신뢰할 수 있는 루트 저장소에 프라이빗 CA 인증서를 로드할 수 있나요?

App Service Environment 버전 3의 신뢰할 수 있는 루트 저장소에 자체 CA 인증서를 로드할 수 있습니다. App Service(다중 테넌트)에서는 신뢰할 수 있는 루트 인증서 목록을 수정할 수 없습니다. App Service 다중 테넌트와 단일 테넌트에 대한 자세한 내용은 App Service Environment v3 및 App Service 공용 다중 테넌트 비교를 참조하세요.

추가 리소스