Azure Spring Apps에 기존 사용자 지정 도메인 매핑
참고 항목
기본, 표준 및 엔터프라이즈 계획은 2025년 3월 중순부터 사용되지 않으며 3년의 은퇴 기간이 있습니다. Azure Container Apps로 전환하는 것이 좋습니다. 자세한 내용은 Azure Spring Apps 사용 중지 공지 사항을 참조하세요.
표준 소비 및 전용 계획은 2024년 9월 30일부터 사용되지 않으며 6개월 후에 완전히 종료됩니다. Azure Container Apps로 전환하는 것이 좋습니다. 자세한 내용은 Azure Spring Apps 표준 사용량 및 전용 계획을 Azure Container Apps로 마이그레이션을 참조 하세요.
이 문서는 Java ✅ C에✅ 적용됩니다.#
이 문서는 Standard ✅ Enterprise에✅ 적용됩니다.
DNS(Domain Name Service)는 네트워크를 통해 네트워크 노드 이름을 저장하는 기술입니다. 이 문서에서는 CNAME 레코드를 사용하여 www.contoso.com
와 같은 도메인을 매핑합니다. 이 기술은 인증서를 사용하여 사용자 지정 도메인을 보호하며 SSL(Secure Sockets Layer)이라고도 하는 TLS(전송 계층 보안)를 적용하는 방법을 보여줍니다.
인증서는 웹 트래픽을 암호화합니다. 이러한 TLS/SSL 인증서는 Azure Key Vault에 저장할 수 있습니다.
필수 구성 요소
- Azure 구독 구독이 없는 경우 시작하기 전에 체험 계정을 만드세요.
- (선택 사항) Azure CLI 버전 2.45.0 이상. 다음 명령을 사용하여 Azure Spring Apps 확장을 설치합니다.
az extension add --name spring
- Azure Spring Apps에 배포된 애플리케이션(빠른 시작: Azure Portal을 사용하여 Azure Spring Apps에서 기존 애플리케이션 시작 참조 또는 기존 앱 사용) 기본 플랜을 사용하여 애플리케이션을 배포하는 경우 표준 플랜으로 업그레이드해야 합니다.
- 도메인 공급자(예: GoDaddy)에 대한 DNS 레지스트리에 액세스할 수 있는 도메인 이름입니다.
- 타사 공급자의 프라이빗 인증서(즉, 자체 서명된 인증서) 인증서는 도메인과 일치해야 합니다.
- 배포된 Azure Key Vault 인스턴스입니다. 자세한 내용은 Azure Key Vault 정보를 참조하세요.
Key Vault 프라이빗 링크 고려 사항
Azure Spring Apps 관리의 IP 주소는 아직 Azure Trusted Microsoft 서비스에 속하지 않습니다. 따라서 Azure Spring Apps가 프라이빗 엔드포인트 연결로 보호되는 Key Vault에서 인증서를 로드할 수 있도록 하려면 다음 IP 주소를 Azure Key Vault 방화벽에 추가해야 합니다.
20.99.204.111
20.201.9.97
20.74.97.5
52.235.25.35
20.194.10.0
20.59.204.46
104.214.186.86
52.153.221.222
52.160.137.39
20.39.142.56
20.199.190.222
20.79.64.6
20.211.128.96
52.149.104.144
20.197.121.209
40.119.175.77
20.108.108.22
102.133.143.38
52.226.244.150
20.84.171.169
20.93.48.108
20.75.4.46
20.78.29.213
20.106.86.34
20.193.151.132
인증서 가져오기
PFX에서 인증서 파일 준비(선택 사항)
Azure Key Vault는 PEM 및 PFX 형식의 프라이빗 인증서 가져오기를 지원합니다. 인증서 공급자에서 가져온 PEM 파일이 Key Vault에 인증서 저장 섹션에서 작동하지 않는 경우 다음 단계에 따라 Azure Key Vault용 PFX를 생성합니다.
중간 인증서 병합
인증 기관에서 여러 인증서를 인증서 체인에 제공하면 인증서를 순서대로 병합해야 합니다.
이 작업을 수행하려면 텍스트 편집기에서 받은 각 인증서를 엽니다.
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을 사용하여 인증서 요청을 생성한 경우 프라이빗 키 파일을 만든 것입니다. 인증서를 PFX로 내보내려면 다음 명령을 실행합니다. 자리 표시자 <private-key-file> 및 <merged-certificate-file>을 사용자의 프라이빗 키 및 병합된 인증서 파일에 대한 경로로 바꿉니다.
openssl pkcs12 -export -out myserver.pfx -inkey <private-key-file> -in <merged-certificate-file>
메시지가 표시되면 내보내기 암호를 정의합니다. 나중에 TLS/SSL 인증서를 Azure Key Vault에 업로드할 때 이 암호를 사용합니다.
IIS 또는 Certreq.exe를 사용하여 인증서 요청을 생성한 경우 인증서를 로컬 컴퓨터에 설치한 다음 해당 인증서를 PFX로 내보냅니다.
Key Vault에 인증서 저장
인증서를 가져오는 절차를 수행하려면 PEM 또는 PFX로 인코딩된 파일이 디스크에 있어야 하며 프라이빗 키가 필요합니다.
다음 단계를 사용하여 키 자격 증명 모음에 인증서를 업로드합니다.
키 자격 증명 모음에 Azure Spring Apps 액세스 권한 부여
인증서를 가져오기 전에 키 자격 증명 모음에 Azure Spring Apps 액세스 권한을 부여해야 합니다.
다음 단계에 따라 Azure Portal을 사용하여 액세스 권한을 부여합니다.
Azure Spring Apps로 인증서 가져오기
인증서를 가져오려면 다음 단계를 따릅니다.
Azure Spring Apps 인스턴스로 이동합니다.
탐색 창에서 TLS/SSL 설정을 선택합니다.
Key Vault 인증서 가져오기를 선택합니다.
Azure에서 인증서 선택 페이지의 드롭다운 옵션에서 구독, 키 자격 증명 모음 및 인증서를 선택한 다음, 선택을 선택합니다.
열린 인증서 이름 설정 페이지에서 인증서 이름을 입력하고 필요한 경우 자동 동기화 사용을 선택한 다음, 적용을 선택합니다. 자세한 내용은 자동 동기화 인증서 섹션을 참조하세요.
인증서를 성공적으로 가져오면 프라이빗 키 인증서 목록에 표시됩니다.
Important
이 인증서를 사용하여 사용자 지정 도메인을 보호하려면 인증서를 특정 도메인에 바인딩해야 합니다. 자세한 내용은 SSL 바인딩 추가 섹션을 참조하세요.
인증서 자동 동기화
Azure Key Vault에 저장된 인증서가 만료되기 전에 갱신되는 경우가 있습니다. 마찬가지로 인증서 관리를 위한 조직 보안 정책에 따라 DevOps 팀에서 정기적으로 인증서를 새 인증서로 교체해야 할 수 있습니다. 인증서에 자동 동기화를 사용하도록 설정하면 Azure Spring Apps는 일반적으로 24시간마다 정기적으로 새 버전의 키 자격 증명 모음을 동기화합니다. 새 버전을 사용할 수 있는 경우 Azure Spring Apps는 이 버전을 가져온 다음, 가동 중지 시간을 발생시키지 않는 인증서를 사용하여 다양한 구성 요소를 위해 이 버전을 다시 로드합니다. 다음 목록에서는 영향을 받는 구성 요소와 관련 시나리오를 보여줍니다.
- 앱
- 사용자 지정 도메인
- VMware Spring Cloud Gateway
- 사용자 지정 도메인
- VMware Tanzu용 API 포털
- 사용자 지정 도메인
- VMware Tanzu 애플리케이션 가속기
- 자체 서명된 인증서를 사용하여 Git 리포지토리에 연결
- Application Configuration Service for Tanzu
- 자체 서명된 인증서를 사용하여 Git 리포지토리에 연결
Azure Spring Apps에서 인증서를 가져오거나 다시 로드하면 활동 로그가 생성됩니다. 활동 로그를 보려면 Azure Portal에서 Azure Spring Apps 인스턴스로 이동하고 탐색 창에서 활동 로그를 선택합니다.
참고 항목
인증서 자동 동기화 기능은 Azure Key Vault에서 가져온 프라이빗 인증서와 공용 인증서와 함께 작동합니다. 고객이 업로드하는 콘텐츠 인증서에는 이 기능을 사용할 수 없습니다.
키 자격 증명 모음에서 Azure Spring Apps로 인증서를 가져올 때 인증서 자동 동기화 기능을 사용하거나 사용하지 않도록 설정할 수 있습니다. 자세한 내용은 Azure Spring Apps로 인증서 가져오기 섹션을 참조하세요.
Azure Spring Apps로 이미 가져온 인증서에 이 기능을 사용하거나 사용하지 않도록 설정할 수도 있습니다.
가져온 인증서에 자동 동기화를 사용하거나 사용하지 않도록 설정하려면 다음 단계를 수행합니다.
사용자 지정 도메인 추가
CNAME 레코드를 사용하여 사용자 지정 DNS 이름을 Azure Spring Apps에 매핑할 수 있습니다.
참고 항목
A 레코드는 지원되지 않습니다.
CNAME 레코드 만들기
DNS 공급자로 이동하고 CNAME 레코드를 추가하여 도메인을 <service-name>.azuremicroservices.io
에 매핑합니다. 여기서 <service-name>
은 Azure Spring Apps 인스턴스의 이름입니다. 와일드카드 도메인 및 하위 도메인을 지원합니다.
CNAME을 추가한 후 DNS 레코드 페이지는 다음 예제와 비슷합니다.
Azure Spring Apps 앱에 사용자 지정 도메인 매핑
Azure Spring Apps에 애플리케이션이 없으면 빠른 시작: Azure Spring Apps에 첫 번째 애플리케이션 배포의 지침을 수행합니다.
사용자 지정 도메인을 앱과 바인딩하려면 다음 단계를 따릅니다.
애플리케이션 페이지로 이동합니다.
사용자 지정 도메인을 선택합니다.
사용자 지정 도메인 추가를 선택합니다.
CNAME 레코드를 추가한 정규화된 도메인 이름(예:
www.contoso.com
)을 입력합니다. 호스트 이름 레코드 종류가 CNAME -<service-name>.azuremicroservices.io
로 설정되어 있는지 확인합니다.유효성 검사를 선택하여 추가 단추를 사용하도록 설정합니다.
추가를 선택합니다.
하나의 앱이 여러 도메인을 포함할 수 있지만, 하나의 도메인은 하나의 앱에만 매핑할 수 있습니다. 사용자 지정 도메인을 앱에 성공적으로 매핑하면 사용자 지정 도메인 테이블에 표시됩니다.
참고 항목
사용자 지정 도메인에 안전하지 않음이라는 레이블이 있으면 아직 SSL 인증서에 바인딩되지 않았다는 뜻입니다. 브라우저에서 사용자 지정 도메인으로 전송되는 HTTPS 요청은 오류 또는 경고를 수신합니다.
SSL 바인딩 추가
앱의 사용자 지정 도메인을 업데이트하려면 다음 단계를 따릅니다.
위의 그림처럼 사용자 지정 도메인 테이블에서 SSL 바인딩 추가를 선택합니다.
인증서를 선택하거나 가져옵니다.
저장을 선택합니다.
SSL 바인딩을 성공적으로 추가한 후에는 도메인 상태는 안전: 정상입니다.
HTTPS 적용
기본적으로 여전히 누구나 HTTP를 사용하여 앱에 액세스할 수 있지만, 모든 HTTP 요청을 HTTPS 포트로 리디렉션할 수 있습니다.
앱 페이지의 탐색 영역에서 사용자 지정 도메인을 선택합니다. 그런 다음, HTTPS만 사용을 Yes
로 설정합니다.
작업이 완료되면 앱을 가리키는 HTTPS URL 중 하나로 이동합니다. HTTP URL은 작동하지 않습니다.