Azure App Service에 TLS/SSL 인증서를 추가하고 관리하여 연결 보호

애플리케이션 코드에서 사용하거나 확장성이 높은 자체 패치 웹 호스팅 서비스를 제공하는 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 요구 사항을 충족합니다. 프라이빗 인증서를 App Service에 업로드하거나 가져오기로 선택하는 경우 인증서가 다음 요구 사항을 충족해야 합니다.

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

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

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

참고

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

웹앱 준비

사용자 지정 TLS/SSL 바인딩을 만들거나 App Service 앱에 대한 클라이언트 인증서를 사용하도록 설정하려면 App Service 요금제기본, 표준, 프리미엄 또는 격리 계층에 있어야 합니다. 웹앱이 지원되는 가격 책정 계층에 있는지 확인하려면 다음 단계를 따르세요.

웹앱으로 이동

  1. Azure Portal 검색 상자에서 App Services를 찾아 선택합니다.

    Azure Portal, 검색 상자 및 선택된

  2. App Services 페이지에서 웹앱의 이름을 선택합니다.

    Azure Portal에서 실행 중인 모든 웹앱의 목록을 보여 주며 목록의 첫 번째 앱이 강조 표시된 App Services 페이지의 스크린샷.

    이제 웹앱의 관리 페이지에 있습니다.

가격 책정 계층 확인

  1. 웹앱의 왼쪽 메뉴에 있는 설정 섹션 아래에서 스케일 업(App Service 요금제)을 선택합니다.

    웹앱 메뉴,

  2. 웹앱이 사용자 지정 TLS/SSL을 지원하지 않는 F1 또는 D1 계층에 있지 않은지 확인합니다.

    웹앱의 현재 계층이 진한 파란색 상자로 강조 표시됩니다.

    웹앱 가격 책정 계층 정보의 스크린샷

  3. 강화해야 하는 경우 다음 섹션의 단계를 수행합니다. 그렇지 않은 경우 스케일 업 페이지를 닫고, App Service 요금제 확장 섹션을 건너뜁니다.

App Service 계획 강화

  1. B1, B2, B3 또는 프로덕션 범주의 다른 계층과 같은 유료 계층을 선택합니다. 더 많은 옵션을 보려면 추가 옵션 보기를 선택합니다.

  2. 완료되면 적용을 선택합니다.

    가격 책정 계층 및 선택된

    다음 메시지가 표시되면 크기 조정 작업이 완료된 것입니다.

    스케일 업 작업에 대한 확인 메시지가 있는 스크린샷

무료 관리형 인증서 만들기

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

중요

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

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

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

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

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

  2. 앱의 탐색 메뉴에서 TLS/SSL 설정을 선택합니다. 열린 창에서 프라이빗 키 인증서(.pfx)>App Service 관리되는 인증서 만들기를 선택합니다.

    “TLS/SSL 설정”, “프라이빗 키 인증서(.pfx)” 및 “App Service 관리되는 인증서”가 선택된 앱 메뉴 스크린샷

  3. 무료 인증서의 사용자 지정 도메인을 선택한 다음, 만들기를 선택합니다. 지원되는 사용자 지정 도메인마다 인증서를 하나씩만 만들 수 있습니다.

    작업이 완료되면 프라이빗 키 인증서 목록에 인증서가 표시됩니다.

    새로 생성된 인증서가 나열된 “프라이빗 키 인증서” 창의 스크린샷

  4. 이 인증서를 사용하여 사용자 지정 도메인을 보호하려면 여전히 인증서 바인딩을 만들어야 합니다. 바인딩 만들기의 단계를 따릅니다.

App Service 인증서 구매 및 가져오기

Azure에서 App Service 인증서를 구매하면 Azure에서 다음 작업을 관리합니다.

  • GoDaddy의 구매 프로세스를 처리합니다.
  • 인증서의 도메인 확인을 수행합니다.
  • Azure Key Vault에 인증서를 유지합니다.
  • 인증서 갱신을 관리합니다.
  • App Service 앱에서 가져온 복사본과 인증서를 자동으로 동기화합니다.

App Service 인증서를 구매하려면 인증서 주문 시작으로 이동합니다.

참고

현재 App Service 인증서는 Azure National Clouds에서 지원되지 않습니다.

작동 중인 App Service 인증서가 이미 있으면 다음 작업을 완료할 수 있습니다.

인증서 구매 시작

  1. App Service Certificate 만들기 페이지로 이동하여 App Service 인증서 구매를 시작합니다.

    참고

    이 문서에 표시된 모든 가격은 예제 목적으로만 사용됩니다.

    Azure에서 구매한 App Service 인증서는 GoDaddy에 의해 발급됩니다. 일부 도메인의 경우 0 issue godaddy.com 값으로 CAA 도메인 레코드를 만들어 GoDaddy를 인증서 발급자로 명시적으로 허용해야 합니다.

    구매 옵션이 있는 ‘App Service Certificate 만들기’ 창의 스크린샷

  2. 인증서를 구성하는 데 도움이 필요하면 다음 표를 사용합니다. 완료되면 만들기를 선택합니다.

    설정 설명
    구독 인증서와 연결할 Azure 구독입니다.
    리소스 그룹 인증서를 포함할 리소스 그룹입니다. 새로운 리소스 그룹을 만들거나 App Service 앱과 동일한 리소스 그룹을 선택할 수 있습니다.
    SKU 만들려는 인증서 형식을 표준 인증서나 와일드 카드 인증서 중 하나로 결정합니다.
    Naked 도메인 호스트 이름 루트 도메인을 지정합니다. 발급된 인증서는 루트 도메인과 www 하위 도메인을 모두 보호합니다. 발급된 인증서에서 일반 이름 필드는 루트 도메인을 지정하고 주체 대체 이름 필드는 www 도메인을 지정합니다. 하위 도메인만 보호하려면 하위 도메인의 정규화된 도메인 이름을 지정합니다(예: mysubdomain.contoso.com).
    인증서 이름 App Service 인증서의 식별 이름입니다.
    자동 갱신 사용 만료 전에 인증서를 자동으로 갱신할지 여부를 선택합니다. 각 갱신은 인증서 만료를 1년 연장하고 비용은 구독에 청구됩니다.

Azure Key Vault에 인증서 저장

Key Vault는 클라우드 애플리케이션 및 서비스에서 사용되는 암호화 키 및 비밀을 보호하는데 도움이 되는 Azure 서비스입니다. App Service 인증서의 경우 Key Vault가 스토리지로 선택됩니다. 인증서 구매 프로세스를 완료한 후 이 인증서 사용하기 전에 몇 가지 단계를 추가로 완료해야 합니다.

  1. App Service 인증서 페이지에서 인증서를 선택합니다. 인증서 메뉴에서 인증서 구성>1단계: 저장을 선택합니다.

    “1단계: 저장”이 선택된 “인증서 구성” 창의 스크린샷.

  2. Key Vault 상태 페이지에서 새 자격 증명 모음을 만들거나 기존 자격 증명 모음을 선택하려면 Key Vault 리포지토리를 선택합니다.

  3. 새 자격 증명 모음을 만드는 경우 다음 표에 따라 자격 증명 모음을 설정하고 App Service 앱과 동일한 구독 및 리소스 그룹을 사용해야 합니다. 완료되면 만들기를 선택합니다.

    설정 설명
    이름 영숫자와 대시만 사용하는 고유한 이름
    리소스 그룹 권장 사항: App Service 인증서와 동일한 리소스 그룹
    위치 App Service 앱과 동일한 위치
    가격 책정 계층 자세한 내용은 Azure Key Vault 가격 책정 정보를 참조하세요.
    액세스 정책 애플리케이션 및 자격 증명 모음 리소스에 허용된 액세스를 정의합니다. 나중에 Key Vault 액세스 정책 할당의 단계를 수행하여 이러한 정책을 설정할 수 있습니다. 현재 App Service Certificate에서는 Key Vault 액세스 정책만 지원하고 RBAC 모델을 지원하지 않습니다.
    Virtual Network 액세스 특정 Azure Virtual Network에 대한 자격 증명 모음 액세스 액세스를 제한합니다. 나중에 Azure Key Vault 방화벽 및 Virtual Network 구성의 단계를 수행하여 제한 사항을 설정할 수 있습니다.
  4. 자격 증명 모음을 선택한 후 Key Vault 리포지토리 페이지를 닫습니다. 1단계: 저장 옵션에 성공을 나타내는 녹색 확인 표시가 나타나야 합니다. 다음 단계를 위해 페이지를 열어둡니다.

도메인 소유권 확인

  1. 이전 섹션과 동일한 인증서 구성 페이지에서 2단계: 확인을 클릭합니다.

    “2단계: 확인”이 선택된 “인증서 구성” 창의 스크린샷.

  2. App Service 확인을 선택합니다. 그러나 이전에 필수 구성 요소에 따라 도메인을 웹앱에 매핑했으므로 도메인이 이미 확인되었습니다. 이 단계를 완료하려면 확인을 선택한 다음, 인증서 도메인이 확인됨 메시지가 표시될 때까지 새로 고침을 선택합니다.

다음 도메인 확인 방법이 지원됩니다.

메서드 설명
App Service App Service 앱에서 이미 도메인 소유권을 확인했으므로 도메인이 같은 구독의 App Service 앱에 이미 매핑된 경우에 가장 편리한 옵션입니다. 도메인 소유권 확인의 마지막 단계를 검토합니다.
도메인 Azure에서 구매한 App Service 도메인을 확인합니다. Azure는 사용자에게 자동으로 확인 TXT 레코드를 추가하고 프로세스를 완료합니다.
Mail 도메인 관리자에게 이메일을 보내 도메인을 확인합니다. 옵션을 선택하면 지침이 제공됩니다.
수동 DNS TXT 레코드 또는 HTML 페이지를 사용하여 도메인을 확인합니다. 이 페이지는 다음 메모에 따라 표준 인증서에만 적용됩니다. 이 단계는 옵션을 선택한 후에 제공됩니다. ‘HTTPS 전용’을 사용하는 경우에는 HTML 페이지 옵션은 웹앱에서 작동하지 않습니다.

중요

표준 인증서의 경우 인증서 공급자는 요청한 최상위 수준 도메인 www 하위 도메인(예: contoso.comwww.contoso.com)에 대한 인증서를 제공합니다. 그러나 2021년 12월 1일부터 App Service수동 확인 방법에 제한 사항이 도입되었습니다. 도메인 소유권을 확인하려면 둘 다 HTML 페이지 확인을 사용합니다. 이 방법을 사용하면 인증서 공급자가 인증서를 발급, 키 다시 입력 또는 갱신할 때 www 하위 도메인을 포함할 수 없습니다.

도메인메일 확인 방법은 요청된 최상위 수준 도메인과 함께 www 하위 도메인을 인증서에 계속 포함합니다.

App Service로 인증서 가져오기

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

  2. 앱의 탐색 메뉴에서 TLS/SSL 설정>프라이빗 키 인증서(.pfx)>App Service Certificate 가져오기를 선택합니다.

    “TLS/SSL 설정”, “프라이빗 키 인증서(.pfx)” 및 “App Service 인증서 가져오기”가 선택된 앱 메뉴 스크린샷

  3. 방금 구매한 인증서를 선택한 다음, 확인을 선택합니다.

    작업이 완료되면 프라이빗 키 인증서 목록에 인증서가 표시됩니다.

    구매한 인증서가 나열된 “프라이빗 키 인증서” 창의 스크린샷

  4. 이 인증서를 사용하여 사용자 지정 도메인을 보호하려면 여전히 인증서 바인딩을 만들어야 합니다. 바인딩 만들기의 단계를 따릅니다.

Key Vault에서 인증서 가져오기

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

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

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

참고

현재 Key Vault 인증서에서는 Key Vault 액세스 정책만 지원하며 RBAC 모델을 지원하지 않습니다.

리소스 공급자 서비스 주체 AppId 키 자격 증명 모음 비밀 권한 키 자격 증명 모음 인증서 권한
Microsoft Azure App Service 또는 Microsoft.Azure.WebSites - abfa0a7c-a6b6-4736-8310-5855508787cd(모든 Azure 구독에 동일)

- Azure Government 클라우드 환경의 경우 6a02c803-dafd-4136-b4c3-5a6f318b4714를 사용합니다.
가져오기 가져오기
Microsoft.Azure.CertificateRegistration 가져오기
목록
설정
DELETE
가져오기
목록

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

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

  2. 앱의 탐색 메뉴에서 TLS/SSL 설정>프라이빗 키 인증서(.pfx)>Key Vault 인증서 가져오기를 선택합니다.

    “TLS/SSL 설정”, “프라이빗 키 인증서(.pfx)” 및 “Key Vault 인증서 가져오기”가 선택된 스크린샷

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

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

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

    가져온 인증서가 나열된 “프라이빗 키 인증서” 창의 스크린샷

    참고

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

  4. 이 인증서를 사용하여 사용자 지정 도메인을 보호하려면 여전히 인증서 바인딩을 만들어야 합니다. 바인딩 만들기의 단계를 따릅니다.

프라이빗 인증서 업로드

인증서 공급자로부터 인증서를 가져온 후 이 섹션의 단계를 수행하면 인증서를 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을 사용하여 인증서 요청을 생성한 경우 프라이빗 키 파일을 만든 것입니다.

  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. 앱의 탐색 메뉴에서 TLS/SSL 설정>프라이빗 키 인증서(.pfx)>인증서 업데이트를 선택합니다.

    “TLS/SSL 설정”, “프라이빗 키 인증서(.pfx)” 및 “인증서 업데이트”가 선택된 스크린샷

  3. PFX 인증서 파일에서 PFX 파일을 선택합니다. 인증서 암호에 PFX 파일을 내보낼 때 만든 암호를 입력합니다. 완료되면 업로드를 선택합니다.

    작업이 완료되면 프라이빗 키 인증서 목록에 인증서가 표시됩니다.

    업로드된 인증서가 나열된 “프라이빗 키 인증서” 창의 스크린샷

  4. 이 인증서를 사용하여 사용자 지정 도메인을 보호하려면 여전히 인증서 바인딩을 만들어야 합니다. 바인딩 만들기의 단계를 따릅니다.

공용 인증서 업로드

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

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

  2. 앱의 탐색 메뉴에서 TLS/SSL 설정>공용 인증서(.cer)>공개 키 인증서 업로드를 선택합니다.

  3. 이름에 인증서 이름을 입력합니다. CER 인증서 파일에서 CER 파일을 선택합니다. 완료되면 업로드를 선택합니다.

    이름과 업로드할 공개 키 인증서의 스크린샷

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

만료되는 인증서 갱신

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

업로드된 인증서 갱신

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

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

  2. 만료되는 기존 인증서를 삭제하지 않고 같은 사용자 지정 도메인에 새 인증서를 바인딩합니다. 이 작업의 경우 App Service 앱의 TLS/SSL 설정 창으로 이동하고 바인딩 추가를 선택합니다.

    이 작업은 기존 인증서 바인딩을 제거하지 않고 바인딩을 교체합니다.

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

App Service 인증서 갱신

기본적으로 App Service 인증서의 유효 기간은 1년입니다. 만료 날짜 전후에 App Service 인증서를 1년 단위로 자동 또는 수동으로 갱신할 수 있습니다. 갱신 프로세스는 만료 날짜가 기존 인증서의 만료 날짜로부터 1년 더 연장된 새 App Service 인증서를 효과적으로 제공합니다.

참고

2021년 9월 23일부터 지난 395일 동안 도메인을 확인하지 않은 경우 App Service 인증서를 사용하려면 갱신 또는 키 다시 입력 프로세스 중에 도메인을 확인해야 합니다. 도메인 확인을 완료할 때까지 갱신 또는 키 다시 입력 프로세스 중에 새 인증서 주문은 “발급 보류 중” 모드로 유지됩니다.

App Service 관리되는 인증서와 달리 App Service 인증서에 대한 도메인 재확인은 자동화되지 않습니다. 도메인 소유권을 확인하지 못하면 갱신이 실패합니다. App Service 인증서를 확인하는 방법에 대한 자세한 내용은 도메인 소유권 확인을 검토하세요.

갱신 프로세스를 수행하려면 App Service의 잘 알려진 서비스 주체에게 키 자격 증명 모음에 대한 필수 권한이 있어야 합니다. 이러한 권한은 Azure Portal 통해 App Service 인증서를 가져올 때 자동으로 설정됩니다. 키 자격 증명 모음에서 이러한 권한을 제거하지 않아야 합니다.

  1. 언제든지 App Service 인증서의 자동 갱신 설정을 변경하려면 App Service 인증서 페이지에서 인증서를 선택합니다.

  2. 왼쪽 메뉴에서 자동 갱신 설정을 선택합니다.

  3. 켜기 또는 끄기를 선택하고 저장을 선택합니다.

    자동 갱신을 활성화하면 인증서가 만료 32일 전에 자동으로 갱신됩니다.

    지정된 인증서 자동 갱신 설정의 스크린샷

  4. 대신 인증서를 수동으로 갱신하려면 수동 갱신을 선택합니다. 만료 60일 전에 인증서를 자동으로 갱신하도록 요청할 수 있습니다.

  5. 갱신 작업이 완료되면 동기화를 선택합니다.

    동기화 작업에서는 앱 가동 중지 시간 없이 App Service의 인증서에 대한 호스트 이름 바인딩을 자동으로 업데이트합니다.

    참고

    동기화를 선택하지 않으면 App Service에서 24시간 이내에 인증서를 자동으로 동기화합니다.

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

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

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

  1. 앱의 TLS/SSL 설정 페이지로 이동합니다.

  2. 프라이빗 키 인증서에서 가져온 인증서를 선택한 다음, 동기화를 선택합니다.

Azure App 인증서 관리

이 섹션에는 구매한 App Service 인증서를 관리하는 데 도움이 되는 작업에 대한 링크가 포함되어 있습니다.

App Service 인증서 키 다시 입력

인증서의 프라이빗 키가 손상되었다고 생각되는 경우 인증서 키를 다시 입력할 수 있습니다. 이 작업은 인증서를 인증 기관에서 발급한 새 인증서로 롤링합니다.

  1. App Service 인증서 페이지에서 인증서를 선택합니다. 왼쪽 메뉴에서 키 다시 입력 및 동기화를 선택합니다.

  2. 프로세스를 시작하려면 키 다시 입력을 선택합니다. 이 프로세스는 완료하는 데 1-10분 정도 걸릴 수 있습니다.

    App Service 인증서 키 다시 입력의 스크린샷

  3. 도메인 소유권을 다시 확인해야 할 수도 있습니다.

  4. 키 다시 입력 작업이 완료되면 동기화를 선택합니다.

    동기화 작업에서는 앱 가동 중지 시간 없이 App Service의 인증서에 대한 호스트 이름 바인딩을 자동으로 업데이트합니다.

    참고

    동기화를 선택하지 않으면 App Service에서 24시간 이내에 인증서를 자동으로 동기화합니다.

App Service 인증서 내보내기

App Service 인증서는 Key Vault 비밀이므로 복사본을 PFX 파일로 내보내서 다른 Azure 서비스나 Azure 외부에서 사용할 수 있습니다.

중요

내보낸 인증서는 관리되지 않는 아티팩트입니다. App Service는 App Service 인증서가 갱신될 때 이러한 아티팩트를 동기화하지 않습니다. 갱신된 인증서를 내보내고 필요한 위치에 설치해야 합니다.

  1. App Service 인증서 페이지에서 인증서를 선택합니다.

  2. 왼쪽 메뉴에서 인증서 내보내기를 선택합니다.

  3. Key Vault에서 열기를 선택합니다.

  4. 인증서의 현재 버전을 선택합니다.

  5. 인증서로 다운로드를 선택합니다.

다운로드한 PFX 파일은 공용 인증서와 프라이빗 인증서를 모두 포함하는 원시 PKCS12 파일이며 빈 문자열인 가져오기 암호가 있습니다. 암호 필드를 비워 두면 파일을 로컬로 설치할 수 있습니다. 파일이 암호로 보호되지 않으므로 파일을 있는 그대로 App Service 업로드할 수 없습니다.

App Service 인증서 삭제

App Service 인증서를 삭제하는 경우 삭제 작업은 되돌릴 수 없으며 최종적입니다. 결과는 철회된 인증서이며 이 인증서를 사용하는 App Service에서 바인딩은 유효하지 않습니다.

실수로 인한 삭제가 방지되도록 Azure에서 App Service 인증서를 잠급니다. 따라서 인증서를 삭제하려면 먼저 인증서에 대한 삭제 잠금을 제거해야 합니다.

  1. App Service 인증서 페이지에서 인증서를 선택합니다.

  2. 왼쪽 메뉴에서 잠금을 선택합니다.

  3. 인증서에서 삭제 잠금 형식을 사용하여 잠금을 찾습니다. 오른쪽에서 삭제를 선택합니다.

    App Service 인증서 잠금 삭제의 스크린샷

  4. 이제 App Service 인증서를 삭제할 수 있습니다. 왼쪽 메뉴에서 개요>삭제를 선택합니다.

  5. 확인 상자가 열리면 인증서 이름을 입력하고 확인을 선택합니다.

스크립트를 사용하여 자동화

Azure CLI

웹앱에 사용자 지정 TLS/SSL 인증서 결합

PowerShell

$fqdn="<Replace with your custom domain name>"
$pfxPath="<Replace with path to your .PFX file>"
$pfxPassword="<Replace with your .PFX password>"
$webappname="mywebapp$(Get-Random)"
$location="West Europe"

# Create a resource group.
New-AzResourceGroup -Name $webappname -Location $location

# Create an App Service plan in Free tier.
New-AzAppServicePlan -Name $webappname -Location $location `
-ResourceGroupName $webappname -Tier Free

# Create a web app.
New-AzWebApp -Name $webappname -Location $location -AppServicePlan $webappname `
-ResourceGroupName $webappname

Write-Host "Configure a CNAME record that maps $fqdn to $webappname.azurewebsites.net"
Read-Host "Press [Enter] key when ready ..."

# Before continuing, go to your DNS configuration UI for your custom domain and follow the 
# instructions at https://aka.ms/appservicecustomdns to configure a CNAME record for the 
# hostname "www" and point it your web app's default domain name.

# Upgrade App Service plan to Basic tier (minimum required by custom SSL certificates)
Set-AzAppServicePlan -Name $webappname -ResourceGroupName $webappname `
-Tier Basic

# Add a custom domain name to the web app. 
Set-AzWebApp -Name $webappname -ResourceGroupName $webappname `
-HostNames @($fqdn,"$webappname.azurewebsites.net")

# Upload and bind the SSL certificate to the web app.
New-AzWebAppSSLBinding -WebAppName $webappname -ResourceGroupName $webappname -Name $fqdn `
-CertificateFilePath $pfxPath -CertificatePassword $pfxPassword -SslState SniEnabled

추가 리소스