백 엔드 풀의 암호화 구성

완료됨

백 엔드 풀에는 애플리케이션을 구현하는 서버가 포함되어 있습니다. Azure Application Gateway는 이러한 서버에 요청을 라우팅하고 이러한 서버 간에 트래픽 부하를 분산할 수 있습니다.

배송 포털에서 백 엔드 풀의 애플리케이션 서버는 SSL을 사용하여 Application Gateway와 백 엔드 풀의 서버 간에 전달되는 데이터를 암호화해야 합니다. Application Gateway는 공개 키를 사용하는 SSL 인증서를 사용하여 데이터를 암호화합니다. 서버는 데이터를 수신하면 그에 상응하는 프라이빗 키를 사용하여 데이터를 암호 해독합니다. 이 단원에서는 백 엔드 풀을 만들고 Application Gateway에 필요한 인증서를 설치하는 방법을 알아보세요. 이러한 인증서는 백 엔드 풀과 주고 받는 메시지를 보호하는 데 도움이 됩니다.

Application Gateway에서 백 엔드로 전송되는 데이터 암호화

백 엔드 풀은 개별 가상 머신, 가상 머신 확장 집합, 온-프레미스 또는 원격으로 실행되는 실제 컴퓨터의 IP 주소, Azure App Service를 통해 호스트되는 서비스를 참조할 수 있습니다. 백 엔드 풀의 모든 서버는 보안 설정을 포함하여 동일한 방식으로 구성되어야 합니다.

Diagram showing how Application Gateway routes a request to a web server.

백 엔드 풀로 전달되는 트래픽을 SSL를 통해 보호하면 백 엔드 풀의 각 서버에서 적합한 인증서를 제공해야 합니다. 테스트용으로 자체 서명된 인증서를 만들 수 있습니다. 프로덕션 환경에서는 항상 CA(인증 기관)가 인증할 수 있는 인증서를 생성하거나 구입해야 합니다.

현재 Application Gateway는 v1 및 v2 두 가지 버전이 있습니다. 기능도 비슷하지만 구현 세부 정보는 약간 다릅니다. v2 버전은 추가 기능 및 성능 향상을 제공합니다.

Application Gateway v1에서 인증서 구성

Application Gateway v1을 사용하려면 게이트웨이 구성의 서버에 대한 인증 인증서를 설치해야 합니다. 이 인증서에는 Application Gateway에서 메시지를 암호화하고 서버를 인증하는 데 사용하는 퍼블릭 키가 포함되어 있습니다. 서버에서 인증서 내보내기를 사용하여 이 인증서를 만들 수 있습니다. 애플리케이션 서버는 그에 상응하는 프라이빗 키를 사용하여 이러한 메시지를 암호 해독합니다. 이 프라이빗 키는 애플리케이션 서버에만 저장해야 합니다.

Azure CLI에서 az network application-gateway auth-cert create 명령을 사용하여 Application Gateway에 인증 인증서를 추가할 수 있습니다. 다음 예제에서는 이 명령의 구문을 보여줍니다. 인증서는 CER(클레임, 증명 정보 및 추론) 형식이어야 합니다.

az network application-gateway auth-cert create \
    --resource-group <resource group name> \
    --gateway-name <application gateway name> \
    --name <certificate name> \
    --cert-file <path to authentication certificate>

Application Gateway는 인증 인증서를 나열하고 관리하는 데 사용할 수 있는 다른 명령을 제공합니다. 예를 들면 다음과 같습니다.

  • az network application-gateway auth-cert list 명령은 설치된 인증서를 표시합니다.
  • 이 명령을 사용하여 az network application-gateway auth-cert update 인증서를 변경할 수 있습니다.
  • az network application-gateway auth-cert delete 명령은 인증서를 제거합니다.

Application Gateway v2에서 인증서 구성

Application Gateway v2의 인증 요구 사항은 약간 다릅니다. 백 엔드 풀의 서버에 대한 SSL 인증서를 인증한 인증 기관의 인증서를 제공합니다. 이 인증서를 Application Gateway에 신뢰할 수 있는 루트 인증서로 추가합니다. Azure CLI에서 az network application-gateway root-cert create 명령을 사용합니다.

az network application-gateway root-cert create \
      --resource-group <resource group name> \
      --gateway-name <application gateway name> \
      --name <certificate name> \
      --cert-file <path to trusted CA certificate>

서버에서 자체 서명된 인증서를 사용하는 경우 Application Gateway에서 이 인증서를 신뢰할 수 있는 루트 인증서로 추가합니다.

HTTP 설정

Application Gateway는 규칙을 사용하여 들어오는 포트에서 수신하는 메시지를 백 엔드 풀의 서버로 보내는 방법을 지정합니다. 서버에서 SSL을 사용하는 경우 다음을 나타내는 규칙을 구성해야 합니다.

  • 서버는 트래픽이 HTTPS 프로토콜을 통과할 것으로 예상합니다.
  • 트래픽을 암호화하고 서버에 대한 연결을 인증하는 데 사용할 인증서.

이 구성 정보는 HTTP 설정을 사용하여 정의합니다.

Azure CLI의 명령을 사용하여 az network application-gateway http-settings create HTTP 설정을 정의할 수 있습니다. 다음 예제는 HTTPS 프로토콜을 사용하여 백 엔드 풀에 있는 서버의 443 포트로 트래픽을 라우팅하는 설정을 만드는 구문을 보여줍니다. Application Gateway v1을 사용하는 경우 --auth-certs 매개 변수는 이전에 Application Gateway에 추가한 인증 인증서의 이름입니다.

az network application-gateway http-settings create \
    --resource-group <resource group name> \
    --gateway-name <application gateway name> \
    --name <HTTPS settings name> \
    --port 443 \
    --protocol Https \
    --auth-certs <certificate name>

Application Gateway v2를 사용하는 경우 --auth-certs 매개 변수를 생략합니다. Application Gateway는 백엔드 서버에 연결합니다. 이는 서버에서 제공한 인증서를 신뢰할 수 있는 루트 인증서 목록에 지정된 CA와 비교하여 인증서의 신뢰성을 확인합니다. 일치하는 항목이 없는 경우 Application Gateway는 백 엔드 서버에 연결하지 않으며, HTTP 502(잘못된 게이트웨이) 오류와 함께 실패합니다.