IoT Hub 리소스를 새 TLS 인증서 루트로 마이그레이션

Azure IoT Hub 및 DPS(Device Provisioning Service)는 2025년에 만료되는 Baltimore CyberTrust Root에서 발급한 TLS 인증서를 사용합니다. 2023년 2월부터 글로벌 Azure 클라우드의 모든 IoT Hub는 DigiCert Global Root G2에서 발급한 새 TLS 인증서로 마이그레이션됩니다.

IoT 허브를 새 TLS 인증서로 마이그레이션할 때 미치는 영향에 대해 지금 계획을 시작해야 합니다.

  • 인증서 저장소에 DigiCert Global Root G2가 없는 디바이스는 Azure에 연결할 수 없습니다.
  • IoT 허브의 IP 주소가 변경됩니다.

타임라인

확장에 대해 이미 승인된 허브를 제외하고 IoT Hub 마이그레이션이 완료되었습니다. IoT 허브가 제품 팀과의 계약 없이 Baltimore 인증서를 사용하는 것으로 확인되면 추가 공지 없이 허브가 마이그레이션됩니다.

모든 IoT 허브가 마이그레이션된 후 DPS는 2024년 1월 15일부터 9월 30일 사이에 마이그레이션을 수행합니다.

확장 계약이 있는 각 IoT 허브에 대해 다음을 예상할 수 있습니다.

  • 마이그레이션 1~2주 전: 각 IoT 허브의 구독 소유자는 마이그레이션 날짜를 알리는 메일 알림을 받습니다. 이 알림은 수동으로 마이그레이션되는 허브에는 적용되지 않습니다.
  • 마이그레이션 날짜: IoT 허브는 TLS 인증서를 DigiCert Global Root G2로 전환하므로 IoT 허브에 대한 가동 중지 시간이 발생하지 않습니다. IoT Hub는 디바이스를 강제로 다시 연결하지 않습니다.
  • 마이그레이션 이후: 구독 소유자는 IoT 허브가 마이그레이션되었음을 확인하는 알림을 받습니다. 디바이스는 개별 재시도 논리에 따라 다시 연결을 시도하며, 이때 IoT Hub에서 새 서버 인증서를 요청 및 수신하고 Digicert Global Root G2를 신뢰하는 경우에만 다시 연결합니다.

연장 요청

2023년 8월부터 IoT Hub 및 IoT Central에 대한 확장 요청 프로세스가 종료됩니다. IoT 허브가 제품 팀과 연장 계약 없이 Baltimore 인증서를 사용하는 것으로 확인되면 추가 공지 없이 허브가 마이그레이션됩니다.

필수 단계

마이그레이션을 준비하려면 다음 단계를 수행합니다.

  1. 디바이스의 신뢰할 수 있는 루트 저장소에 Baltimore CyberTrust Root를 유지합니다. 디바이스에 DigiCert Global Root G2 및 Microsoft RSA Root Certificate Authority 2017 인증서를 추가합니다. Azure 인증 기관 세부 정보에서 이러한 인증서를 모두 다운로드할 수 있습니다.

    IoT Hub 및 DPS 마이그레이션이 완료될 때까지 디바이스에 세 개의 인증서를 모두 보유하는 것이 중요합니다. Baltimore CyberTrust Root를 유지하면 마이그레이션할 때까지 디바이스가 계속 연결되고 DigiCert Global Root G2를 추가하면 마이그레이션 후 디바이스가 원활하게 전환되고 다시 연결됩니다. Microsoft RSA Root Certificate Authority 2017은 DigiCert Global Root G2가 예기치 않게 사용 중지되는 경우 향후 중단을 방지하는 데 도움이 됩니다.

    IoT Hub의 권장 인증서 사례에 대한 자세한 내용은 TLS 지원참조하세요.

  2. 중간 또는 리프 인증서를 고정하지 않고 공용 루트를 사용하여 TLS 서버 유효성 검사를 수행하는지 확인합니다.

    IoT Hub 및 DPS는 때때로 중간 CA(인증 기관)를 롤오버합니다. 이러한 경우 디바이스는 중간 CA 또는 리프 인증서를 명시적으로 찾으면 연결이 끊어집니다. 그러나 공용 루트를 사용하여 유효성 검사를 수행하는 디바이스는 중간 CA에 대한 변경 사항에 관계없이 계속 연결됩니다.

디바이스가 TLS 인증서 마이그레이션을 위한 준비가 되었는지 테스트하는 방법에 대한 자세한 내용은 블로그 게시물 Azure IoT TLS: 중요한 변경 내용이 거의 여기에 있습니다!를 참조하세요.

IoT 허브의 마이그레이션 상태 확인

IoT 허브가 마이그레이션되었는지 여부를 확인하려면 허브에 대한 활성 인증서 루트를 확인합니다.

  1. Azure Portal에서 IoT Hub로 이동합니다.

  2. 탐색 메뉴의 Automation 섹션에서 템플릿 내보내기를 선택합니다.

  3. 템플릿이 생성되기를 기다린 다음 JSON 템플릿에서 resources.properties.features 속성으로 이동합니다. RootCertificateV2가 기능으로 나열되면 허브가 DigiCert Global G2로 마이그레이션됩니다.

자주 묻는 질문

내 디바이스는 SAS/X.509/TPM 인증을 사용합니다. 이 마이그레이션이 내 디바이스에 영향을 주나요?

TLS 인증서를 마이그레이션해도 IoT Hub에서 디바이스를 인증하는 방법에는 영향을 주지 않습니다. 이 마이그레이션은 디바이스가 IoT Hub 및 DPS 엔드포인트를 인증하는 방법에 영향을 줍니다.

IoT Hub 및 DPS는 디바이스에 서버 인증서를 제공하고 디바이스는 엔드포인트에 대한 연결을 신뢰하기 위해 루트에 대해 해당 인증서를 인증합니다. 마이그레이션 후 Azure를 확인하고 연결할 수 있으려면 디바이스의 신뢰할 수 있는 인증서 저장소에 새 DigiCert Global Root G2가 있어야 합니다.

내 디바이스는 Azure IoT SDK를 사용하여 연결합니다. SDK가 새 인증서로 계속 작동하도록 해야 하나요?

경우에 따라 다릅니다.

  • , Java V1 디바이스 클라이언트를 사용하는 경우입니다. 이 클라이언트는 SDK와 함께 Baltimore Cybertrust Root 인증서를 패키지합니다. Java V2로 업데이트하거나 DigiCert Global Root G2 인증서를 소스 코드에 수동으로 추가할 수 있습니다.
  • 아니요, 다른 Azure IoT SDK를 사용하는 경우입니다. 대부분의 Azure IoT SDK는 TLS 핸드셰이크 중에 서버 인증을 위해 신뢰할 수 있는 루트를 검색하기 위해 기본 운영 체제의 인증서 저장소를 사용합니다.

사용된 SDK에 관계없이 블로그 게시물Azure IoT TLS: 중요한 변경 내용이 거의 여기에 있습니다!의 유효성 검사 섹션에 설명된 대로 마이그레이션 전에 모든 고객이 디바이스의 유효성을 검사하는 것이 좋습니다.

내 디바이스는 소버린 Azure 지역에 연결됩니다. 그래도 업데이트해야 하나요?

아니요, 글로벌 Azure 클라우드 만 이 변경의 영향을 받습니다. 소버린 클라우드는 이 마이그레이션에 포함되지 않습니다.

IoT Central을 사용합니다. 내 디바이스를 업데이트해야 하나요?

예, IoT Central은 백 엔드에서 IoT Hub와 DPS를 모두 사용합니다. TLS 마이그레이션은 솔루션에 영향을 미치므로 연결을 유지하려면 디바이스를 업데이트해야 합니다.

본인의 일정에 따라 Baltimore CyberTrust Root에서 DigiCert Global G2 Root로 애플리케이션을 마이그레이션할 수 있습니다. 권장되는 프로세스는 다음과 같습니다.

  1. 2024년 9월 30일 전환 기간이 완료될 때까지 디바이스에 Baltimore CyberTrust Root를 유지합니다(연결 중단을 방지하는 데 필요).
  2. Baltimore Root 외에도 DigiCert Global G2 Root가 신뢰할 수 있는 루트 저장소에 추가되었는지 확인합니다.
  3. 중간 또는 리프 인증서를 고정하지 않고 공용 루트를 사용하여 TLS 서버 유효성 검사를 수행하는지 확인합니다.
  4. IoT Central 애플리케이션의 설정>애플리케이션>Baltimore Cybertrust Migration에서 루트 인증 설정을 찾을 수 있습니다. 
    1. DigiCert Global G2 Root를 선택하여 새 인증서 루트로 마이그레이션합니다.
    2. 저장을 클릭하여 마이그레이션을 시작합니다.
    3. 필요한 경우 Baltimore CyberTrust Root를 선택하고 변경 내용을 저장하여 Baltimore 루트로 다시 마이그레이션할 수 있습니다. 이 옵션은 2023년 8월 15일까지 사용할 수 있으며 비활성화됩니다.

디바이스를 다시 연결하는 데 얼마나 걸리나요?

여러 가지 요인이 디바이스 다시 연결 동작에 영향을 줄 수 있습니다.

디바이스는 특정 간격으로 연결을 다시 확인하도록 구성됩니다. Azure IoT SDK의 기본값은 45분마다 다시 확인하는 것입니다. 솔루션에서 다른 패턴을 구현한 경우 환경이 달라질 수 있습니다.

또한 마이그레이션의 일부로 IoT 허브가 새 IP 주소를 가져올 수 있습니다. 디바이스가 DNS 서버를 사용하여 IoT 허브에 연결하는 경우 DNS 서버가 새 주소로 새로 고치는 데 최대 1시간이 걸릴 수 있습니다. 자세한 내용은 IoT Hub IP 주소를 참조하세요.

언제 내 디바이스에서 Baltimore Cybertrust Root를 제거할 수 있나요?

마이그레이션의 모든 단계가 완료되면 Baltimore 루트 인증서를 제거할 수 있습니다. IoT Hub만 사용하는 경우 IoT Hub 마이그레이션이 2023년 10월 15일에 완료되도록 예약된 후 이전 루트 인증서를 제거할 수 있습니다. Device Provisioning Service 또는 IoT Central을 사용하는 경우 DPS 마이그레이션이 2024년 9월 30일에 완료될 때까지 두 루트 인증서를 디바이스에 유지해야 합니다.

문제 해결

IoT Hub에 일반적인 연결 문제가 발생하는 경우 다음 문제 해결 리소스를 확인하세요.

인증서를 마이그레이션한 후 Azure Monitor를 관찰하는 경우 다음 스크린샷과 같이 DeviceDisconnect 이벤트와 DeviceConnect 이벤트를 찾아야 합니다.

DeviceDisconnect 및 DeviceConnect 이벤트를 보여 주는 Azure Monitor 로그 스크린샷.

디바이스 연결이 끊어졌지만 마이그레이션 후 다시 연결되지 않는 경우 다음 단계를 시도합니다.

  • DNS 확인 및 핸드셰이크 요청이 오류 없이 완료되었는지 확인합니다.

  • 디바이스에 DigiCert Global Root G2 인증서와 Baltimore 인증서가 모두 인증서 저장소에 설치되어 있는지 확인합니다.

  • 다음 Kusto 쿼리를 사용하여 디바이스에 대한 연결 작업을 식별합니다. 자세한 내용은 KQL(Kusto 쿼리 언어) 개요를 참조하세요.

    AzureDiagnostics
    | where ResourceProvider == "MICROSOFT.DEVICES" and ResourceType == "IOTHUBS"
    | where Category == "Connections"
    | extend parsed_json = parse_json(properties_s)
    | extend SDKVersion = tostring(parsed_json.sdkVersion), DeviceId = tostring(parsed_json.deviceId), Protocol = tostring(parsed_json.protocol)
    | distinct TimeGenerated, OperationName, Level, ResultType, ResultDescription, DeviceId, Protocol, SDKVersion
    
  • Azure Portal IoT 허브의 메트릭 탭을 사용하여 디바이스 다시 연결 프로세스를 추적합니다. 이 마이그레이션을 완료하기 전과 후에 디바이스에 변경 내용이 표시되지 않는 것이 가장 좋습니다. 한 가지 권장되는 메트릭은 연결된 디바이스이지만 적극적으로 모니터링하는 차트를 사용할 수 있습니다.