애플리케이션 코드에서 사용하거나 Azure App Service에서 사용자 지정 DNS(도메인 이름 시스템) 이름을 보호하는 데 도움이 되는 디지털 보안 인증서를 추가할 수 있습니다. App Service는 확장성이 뛰어난 자체 패치 웹 호스팅 서비스를 제공합니다. 인증서는 현재 TLS(전송 계층 보안) 인증서라고 합니다. 이전에는 SSL(Secure Sockets Layer) 인증서라고 했습니다. 이러한 프라이빗 또는 공용 인증서는 인터넷 연결을 보호하는 데 도움이 됩니다. 인증서는 브라우저, 방문하는 웹 사이트 및 웹 사이트 서버 간에 전송된 데이터를 암호화합니다.
다음 표에서는 App Service에서 인증서를 추가하는 옵션을 나열합니다.
옵션 | 설명 |
---|---|
무료 App Service 관리형 인증서 만들기 | App Service에서 사용자 지정 도메인 에 대한 보안을 개선해야 하는 경우 무료로 사용할 수 있는 프라이빗 인증서입니다. |
App Service 인증서 가져오기 | Azure는 프라이빗 인증서를 관리합니다. 간편한 자동 인증서 관리의와 유연한 갱신 및 내보내기 옵션이 결합되었습니다. |
Azure Key Vault에서 인증서 가져오기 | Key Vault를 사용하여 PKCS12 인증서를 관리하는 경우에 유용합니다. 프라이빗 인증서 요구 사항을 참조하세요. |
프라이빗 인증서 업로드 | Microsoft 이외의 공급자의 개인 인증서가 이미 있는 경우 업로드할 수 있습니다. 프라이빗 인증서 요구 사항을 참조하세요. |
공용 인증서 업로드 | 공용 인증서는 사용자 지정 도메인을 보호하는 데 사용되지 않지만, 원격 리소스에 액세스할 때 필요한 경우 공용 인증서를 코드에 로드할 수 있습니다. |
필수 조건
App Service 앱을 만듭니다. 앱의 App Service 요금제는 기본, 표준, 프리미엄 또는 격리 계층에 있어야 합니다. 계층을 업데이트하려면 앱 강화를 참조하세요.
프라이빗 인증서의 경우 App Service의 모든 요구 사항을 충족하는지 확인합니다.
무료 인증서 전용:
프라이빗 인증서 요구 사항
무료 App Service 관리형 인증서와 App Service 인증서는 이미 App Service의 요구 사항을 충족합니다. 프라이빗 인증서를 App Service에 업로드하거나 가져오기로 선택하는 경우 인증서가 다음 요구 사항을 충족해야 합니다.
- 암호로 보호된 PFX 파일로 내보냅니다.
- 인증서 체인의 모든 중간 인증서 및 루트 인증서를 포함합니다.
TLS 바인딩에서 사용자 지정 도메인을 보호하려면 인증서가 다음 추가 요구 사항을 충족해야 합니다.
- 서버 인증에 대한 확장 키 사용( OID = 1.3.6.1.5.5.7.3.1)을 포함합니다.
- 신뢰할 수 있는 인증 기관에서 서명합니다.
참고
ECC(타원 곡선 암호화) 인증서는 PFX로 업로드할 때 App Service에서 작동하지만 현재 Key Vault에서 가져올 수 없습니다. 이 문서에서는 다루지 않습니다. ECC 인증서를 만드는 정확한 단계는 인증 기관을 사용하세요.
앱에 프라이빗 인증서를 추가한 후 인증서는 App Service 계획의 리소스 그룹, 지역 및 OS(운영 체제) 조합에 바인딩된 배포 단위에 저장됩니다. 내부적으로 웹스페이스라고 합니다. 이렇게 하면 동일한 리소스 그룹, 지역, OS 조합의 다른 앱에서 인증서에 액세스할 수 있습니다. App Service로 업로드되거나 가져온 개인 인증서는 동일한 배포 단위의 앱 서비스와 공유됩니다.
웹스페이스당 최대 1,000개의 프라이빗 인증서를 추가할 수 있습니다.
무료 관리형 인증서 만들기
무료 App Service 관리 인증서는 App Service에서 사용자 지정 DNS 이름을 보호하는 데 도움이 되는 턴키 솔루션입니다. App Service는 사용자의 작업 없이 이 TLS/SSL 서버 인증서를 관리합니다.
무료 관리형 인증서를 만들기 전에 앱 의 필수 구성 요소를 충족 하는지 확인합니다.
DigiCert는 무료 인증서를 발급합니다. 일부 도메인의 경우 값이 있는 0 issue digicert.com
를 만들어 DigiCert를 인증서 발급자로 명시적으로 허용해야 합니다.
Azure는 인증서를 완벽하게 관리하므로 루트 발급자를 포함하여 관리되는 인증서의 모든 측면이 언제든지 변경됩니다. 인증서 갱신은 퍼블릭 및 프라이빗 키 부분을 모두 변경합니다. 이러한 인증서 변경 내용은 모두 제어할 수 없습니다. 하드 종속성을 방지하고 관리되는 인증서 또는 인증서 계층 구조의 일부에 사례 인증서를 고정 하지 않도록 합니다. 인증서 고정 동작이 필요한 경우 이 문서에서 사용 가능한 다른 방법을 사용하여 사용자 지정 도메인에 인증서를 추가합니다.
무료 인증서에는 다음과 같은 제한이 있습니다.
- 와일드카드 인증서를 지원하지 않습니다.
- 인증서 지문을 사용하여 현재 클라이언트 인증서로 사용할 수 없습니다. 이는 사용 중단 및 제거가 계획되어 있습니다.
- 프라이빗 DNS를 지원하지 않습니다.
- 내보낼 수 없습니다.
- App Service Environment에서 지원되지 않습니다.
- 영숫자 문자, 대시(-) 및 마침표(.)만 지원합니다.
- 최대 64자의 사용자 지정 도메인을 지원합니다.
- 웹앱의 IP 주소를 가리키는 A 레코드가 있어야 합니다.
- 공개적으로 액세스할 수 있는 앱에 있어야 합니다.
- Azure Traffic Manager와 통합된 루트 도메인에서는 지원되지 않습니다.
- 성공적인 인증서 발급 및 갱신에 대한 이전의 모든 조건을 충족해야 합니다.
Azure Portal의 왼쪽 창에서 App Services><앱 이름을> 선택합니다.
앱의 왼쪽 창에서 인증서를 선택합니다. 관리되는 인증서 창에서 인증서 추가를 선택합니다.
무료 인증서의 사용자 지정 도메인을 선택한 다음, 유효성 검사를 선택합니다. 유효성 검사가 완료되면 추가를 선택합니다. 지원되는 사용자 지정 도메인마다 관리되는 인증서를 하나씩만 만들 수 있습니다.
작업이 완료되면 인증서가 관리되는 인증서 목록에 표시됩니다.
이 인증서를 사용하여 사용자 지정 도메인에 대한 보안을 제공하려면 인증서 바인딩을 만들어야 합니다. Azure App Service에서 TLS/SSL 바인딩으로 사용자 지정 DNS 이름 보호의 단계를 따릅니다.
App Service 인증서 가져오기
App Service 인증서를 가져오려면 먼저 App Service 인증서를 구입 및 구성한 다음, 여기의 단계를 수행합니다.
Azure Portal의 왼쪽 창에서 App Services><앱 이름을> 선택합니다.
앱의 왼쪽 창에서 인증서>사용자 인증서 가져오기(.pfx)>인증서 추가를 선택합니다.
원본에서 App Service 인증서 가져오기를 선택합니다.
App Service 인증서에서 만든 인증서를 선택합니다.
인증서 이름 아래에서 앱에서 인증서 이름을 지정합니다.
유효성 확인을 선택합니다. 유효성 검사가 성공하면 추가를 선택합니다.
작업이 완료되면 인증서가 사용자 고유의 인증서 가져오기(.pfx) 목록에 표시됩니다.
이 인증서를 사용하여 사용자 지정 도메인을 보호하려면 인증서 바인딩을 만들어야 합니다. Azure App Service에서 TLS/SSL 바인딩으로 사용자 지정 DNS 이름 보호의 단계를 따릅니다.
Key Vault에서 인증서 가져오기
Key Vault를 사용하여 인증서를 관리하는 경우 요구 사항을 충족하는 경우 Key Vault에서 App Service로 PKCS12 인증서를 가져올 수 있습니다.
App Service가 보관소에서 읽을 수 있도록 권한을 부여하세요.
기본적으로 App Service 리소스 공급자는 Key Vault에 대한 액세스 권한이 없습니다. 인증서 배포에 키 자격 증명 모음을 사용하려면 리소스 공급자(App Service)의 키 자격 증명 모음에 대한 읽기 액세스 권한을 부여해야 합니다. 액세스 정책 또는 RBAC(역할 기반 액세스 제어)를 사용하여 액세스 권한을 부여할 수 있습니다.
리소스 공급자 | 서비스 주체 앱 ID/담당자 | Key Vault 역할 기반 액세스 제어(RBAC) |
---|---|---|
Azure App Service 또는 Microsoft.Azure.WebSites |
-
abfa0a7c-a6b6-4736-8310-5855508787cd Azure 클라우드 서비스용 - 6a02c803-dafd-4136-b4c3-5a6f318b4714 정부용 Azure 클라우드 서비스 |
인증서 사용자 |
서비스 주체 앱 ID 또는 담당자 값은 App Service 리소스 공급자의 ID입니다. RBAC를 사용하여 액세스 권한을 부여하는 경우 서비스 주체 앱 ID의 해당 개체 ID는 테넌트에 한정됩니다. 액세스 정책을 사용하여 App Service 리소스 공급자에 대한 Key Vault 권한을 부여하는 방법을 알아보려면 Azure 역할 기반 액세스 제어를 사용하여 Key Vault 키, 인증서 및 비밀에 대한 액세스 제공을 참조하세요.
az role assignment create --role "Key Vault Certificate User" --assignee "abfa0a7c-a6b6-4736-8310-5855508787cd" --scope "/subscriptions/{subscriptionid}/resourcegroups/{resource-group-name}/providers/Microsoft.KeyVault/vaults/{key-vault-name}"
앱으로 보관소에서 인증서 가져오기
Azure Portal의 왼쪽 창에서 App Services><앱 이름을> 선택합니다.
앱의 왼쪽 창에서 인증서>사용자 인증서 가져오기(.pfx)>인증서 추가를 선택합니다.
원본에서 Key Vault에서 가져오기를 선택합니다.
키 자격 증명 보관소 인증서 선택을 선택합니다.
인증서를 선택하는 데 도움이 필요하면 다음 표를 사용합니다.
설정 설명 구독 키 자격 증명 모음과 연결된 구독입니다. Key Vault(키 볼트) 가져오려는 인증서가 있는 키 보관소입니다. 인증서 이 목록에서 보관소에 있는 PKCS12 인증서를 선택합니다. 저장소에 있는 모든 PKCS12 인증서는 해당 지문과 함께 나열되지만, 모두가 App Service에서 지원되는 것은 아닙니다. 선택을 완료한 후, 선택>유효성 검사를 하고 추가를 선택합니다.
작업이 완료되면 인증서가 사용자 고유의 인증서 가져오기(.pfx) 목록에 표시됩니다. 오류가 발생하여 가져오기에 실패하는 경우 인증서가 App Service에 대한 요구 사항을 충족하지 않는 것입니다.
Key Vault의 인증서를 새 인증서로 업데이트하면 App Service는 24시간 이내에 인증서를 자동으로 동기화합니다.
이 인증서를 사용하여 사용자 지정 도메인을 보호하려면 인증서 바인딩을 만들어야 합니다. Azure App Service에서 TLS/SSL 바인딩으로 사용자 지정 DNS 이름 보호의 단계를 따릅니다.
프라이빗 인증서 업로드
인증서 공급자로부터 인증서를 가져온 후 이 섹션의 단계를 수행하면 인증서를 App Service에 사용할 수 있습니다.
중간 인증서 병합
인증 기관에서 인증서 체인에 여러 인증서를 제공하는 경우 동일한 순서에 따라 인증서를 병합해야 합니다.
텍스트 편집기에서 받은 각 인증서를 엽니다.
병합된 인증서를 저장하려면 mergedcertificate.crt라는 파일을 만듭니다.
각 인증서의 콘텐츠를 이 파일에 복사합니다. 인증서 체인에서 지정한 인증서 시퀀스를 따라야 합니다. 인증서로 시작하고 루트 인증서로 끝납니다. 예를 들면 다음과 같습니다.
-----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 파일은 특별한 수정 없이 지원됩니다.
인증서를 .pfx 파일로 내보내려면 다음 명령을 실행합니다. 자리 표시자 <private-key-file> 및 <merged-certificate-file>을 사용자의 프라이빗 키 및 병합된 인증서 파일에 대한 경로로 바꿉니다.
openssl pkcs12 -export -out myserver.pfx -inkey <private-key-file> -in <merged-certificate-file>
메시지가 표시되면 내보내기 작업의 암호를 지정합니다. 나중에 TLS/SSL 인증서를 App Service로 업로드할 때 이 암호를 제공해야 합니다.
IIS 또는 Certreq.exe 사용하여 인증서 요청을 생성한 경우 로컬 컴퓨터에 인증서를 설치한 다음 인증서를 .pfx 파일로 내보냅니다.
App Service에 인증서 업로드
이제 App Service에 인증서를 업로드할 준비가 되었습니다.
Azure Portal의 왼쪽 창에서 App Services><앱 이름을> 선택합니다.
앱의 왼쪽 창에서 인증서> 사용자고유의 인증서 가져오기(.pfx)>인증서 업로드(.pfx)를 선택합니다.
.pfx 인증서를 업로드하는 데 도움이 필요하면 다음 표를 사용합니다.
설정 설명 PFX 인증서 파일 .pfx 파일을 선택합니다. 인증서 암호 .pfx 파일을 내보낼 때 만든 암호를 입력합니다. 인증서 식별 이름 웹앱에 표시되는 인증서 이름입니다. 선택을 완료한 후, 선택>유효성 검사를 하고 추가를 선택합니다.
작업이 완료되면 인증서가 사용자 고유의 인증서 가져오기(.pfx) 목록에 표시됩니다.
이 인증서를 사용하여 사용자 지정 도메인에 대한 보안을 제공하려면 인증서 바인딩을 만들어야 합니다. Azure App Service에서 TLS/SSL 바인딩으로 사용자 지정 DNS 이름 보호의 단계를 따릅니다.
공용 인증서 업로드
공용 인증서는 .cer 형식으로 지원됩니다.
공용 인증서를 앱에 업로드한 후에는 업로드된 앱에서만 액세스할 수 있습니다. 공용 인증서는 액세스가 필요한 각 개별 웹앱에 업로드해야 합니다. App Service Environment와 관련된 시나리오는 인증서 및 App Service Environment에 대한 설명서를 참조하세요.
App Service 계획당 최대 1,000개의 공용 인증서를 업로드할 수 있습니다.
Azure Portal의 왼쪽 창에서 App Services><앱 이름을> 선택합니다.
앱의 왼쪽 창에서 인증서>공개 키 인증서(.cer)>를 선택합니다.
.cer 인증서를 업로드하는 데 도움이 필요하면 다음 표를 사용합니다.
설정 설명 인증서 파일 .cer .cer 파일을 선택합니다. 인증서 식별 이름 웹앱에 표시되는 인증서 이름입니다. 완료되면 추가를 선택합니다.
인증서가 업로드되면 인증서 지문을 복사한 다음, 인증서에 액세스할 수 있도록 설정을 검토합니다.
만료되는 인증서 갱신
인증서가 만료되기 전에 App Service에 갱신된 인증서를 추가해야 합니다. 프로세스가 인증서 유형에 따라 달라지는 인증서 바인딩을 업데이트합니다. 예를 들어 App Service 인증서를 포함하여 Key Vault에서 가져온 인증서는 24시간마다 App Service에 자동으로 동기화되며 인증서를 갱신할 때 TLS/SSL 바인딩을 업데이트합니다.
업로드된 인증서의 경우 자동 바인딩 업데이트가 없습니다. 시나리오에 따라 해당 섹션을 검토합니다.
업로드된 인증서 갱신
만료되는 인증서를 교체하면 새 인증서로 인증서 바인딩을 업데이트하는 방법은 사용자 환경에 부정적인 영향을 줄 수 있습니다. 예를 들어 바인딩이 IP 기반인 경우에도 바인딩을 삭제할 때 인바운드 IP 주소가 변경될 수 있습니다. 이 결과는 IP 기반 바인딩에 이미 있는 인증서를 갱신할 때 특히 효과적입니다.
앱의 IP 주소가 변경되지 않도록 하고 HTTPS 오류로 인해 앱의 가동 중지 시간을 방지하려면 다음 단계를 수행합니다.
앱의 사용자 지정 도메인 페이지로 이동하여 ... 단추를 선택한 다음 바인딩 업데이트를 선택합니다.
새 인증서 를 선택한 다음 업데이트를 선택합니다.
기존 인증서를 삭제합니다.
Key Vault에서 가져온 인증서 갱신
App Service 인증서를 갱신하려면 App Service 인증서 갱신을 참조하세요.
Key Vault에서 App Service로 가져온 인증서를 갱신하려면 Azure Key Vault 인증서 갱신을 참조하세요.
키 자격 증명 모음 내에서 인증서가 갱신되면 App Service에서 새 인증서를 자동으로 동기화하고 24시간 이내에 적용 가능한 인증서 바인딩을 업데이트합니다. 수동으로 동기화하려면 다음 단계를 수행합니다.
앱의 인증서 페이지로 이동합니다.
자체 인증서 사용(.pfx)에서 가져온 키 자격 증명 모음 인증서의 ... 단추를 선택한 다음 동기화를 선택합니다.
자주 묻는 질문
앱에 사용자 고유의 인증서를 추가하는 프로세스를 자동화하려면 어떻게 해야 하나요?
- Azure CLI: 웹앱에 사용자 지정 TLS/SSL 인증서 바인딩
- Azure PowerShell: PowerShell을 사용하여 사용자 지정 TLS/SSL 인증서를 웹앱에 바인딩
내 앱에서 인바운드 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 공용 다중 테넌트 비교를 참조하세요.
App Service 인증서를 다른 서비스에 사용할 수 있나요?
예. Azure Application Gateway 또는 기타 서비스에서 App Service 인증서를 내보내고 사용할 수 있습니다. 자세한 내용은 App Service Certificate의 로컬 PFX 복사본 만들기 블로그 문서를 참조하세요.