요약
Microsoft Exchange Server용 2023년 1월 보안 업데이트(SU)부터 관리자가 PowerShell 직렬화 페이로드의 인증서 기반 서명을 구성할 수 있는 새로운 기능이 도입되었습니다. 이 기능은 모든 Exchange Server 기반 서버에 SU를 설치한 후 Exchange Server 관리자가 수동으로 사용하도록 설정해야 합니다. 이 문서에서는 Exchange Server에서 PowerShell 직렬화 데이터의 인증서 기반 서명을 사용하도록 설정하는 단계를 제공합니다.
필수 구성 요소
이 기능을 사용하기 위한 필수 구성 요소:
- 사용자 환경의 모든 Exchange 기반 서버에 2023년 1월 SU 또는 이후 SU가 설치되어 있는지 확인합니다. 모든 서버를 업데이트하기 전에 이 기능을 사용하도록 설정하면 역직렬화 오류가 발생하고 다른 문제가 트리거될 수 있습니다.
- 인증서 서명을 사용하도록 설정하기 전과 후에 유효한 Exchange Server 인증 인증서가 구성되어 있고 모든 Exchange 기반 서버(Edge 전송 서버 제외)에서 사용할 수 있는지 확인합니다.
스크립트를 MonitorExchangeAuthCertificate.ps1 실행하여 사용자 환경의 Exchange 기반 서버에서 유효한 인증 인증서를 검사할 수 있습니다. 또한 스크립트는 인증 인증서가 60일 이내에 만료되는지 여부를 확인하고 인증서를 회전하는 데 도움이 될 수 있습니다. 에 대한 MonitorExchangeAuthCertificate.ps1자세한 내용은 Exchange AuthCertificate 모니터링을 참조하세요
인증 인증서의 가용성 및 유효성을 수동으로 검사하려면 인증 인증서 가용성 및 유효성을 참조하세요.
스크립트를 MonitorExchangeAuthCertificate.ps1 사용하거나 필요한 경우 새 스크립트를 만드는 것이 좋습니다. 스크립트가 만료된 인증 인증서를 갱신할 수도 있기 때문입니다. 스크립트에는 수동 실행 모드가 포함되어 있습니다. 필요한 경우 인증 인증서 가용성을 확인하거나 확인 및 조치 수행. 스크립트에는 Windows 작업 스케줄러를 사용하여 작동하는 자동화 모드도 포함되어 있습니다.
해결 방법
Exchange Server 2019 또는 Exchange Server 2016을 실행하는 서버의 경우(2023년 1월 SU 이상으로 업데이트됨)
사용자 환경에서 Exchange Server를 실행하는 서버의 EMS(Exchange 관리 셸)에서 다음 cmdlet을 Exchange Server 실행합니다.
New-SettingOverride -Name "EnableSigningVerification" -Component Data -Section EnableSerializationDataSigning -Parameters @("Enabled=true") -Reason "Enabling Signing Verification"이 cmdlet을 사용하면 사용자 환경에서 Exchange Server 2019, 2016 또는 2013을 실행하는 모든 서버를 PowerShell 직렬화 페이로드의 인증서 서명에 사용할 수 있습니다. 모든 서버에서 cmdlet을 실행할 필요는 없습니다.
다음 cmdlet을 실행하여 VariantConfiguration 인수를 새로 고칩니다.
Get-ExchangeDiagnosticInfo -Process Microsoft.Exchange.Directory.TopologyService -Component VariantConfiguration -Argument Refresh새 설정을 적용하려면 World Wide Web Publishing 서비스와 WAS(Windows Process Activation Service)를 다시 시작합니다. 이렇게 하려면 다음 cmdlet을 실행합니다.
Restart-Service -Name W3SVC, WAS -Force참고
설정 재정의 cmdlet이 실행된 Exchange Server 기반 서버에서만 이러한 서비스를 다시 시작합니다.
Exchange Server 2013을 실행하는 서버의 경우
사용자 환경에서 Microsoft Exchange Server 2013을 실행 중인 서버가 있는 경우 각 서버에서 레지스트리 키를 구성해야 합니다. 다음 설정을 지정합니다.
레지스트리 키:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ExchangeServer\v15\Diagnostics
값: EnableSerializationDataSigning
유형: 문자열
데이터: 1
Exchange Server 2013 기반 서버에서 레지스트리 값을 만들려면 다음 cmdlet을 실행합니다.
- New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\ExchangeServer\v15\Diagnostics -Name "EnableSerializationDataSigning" -Value 1 -Type String
새 설정을 적용하려면 World Wide Web Publishing 서비스와 WAS(Windows Process Activation Service)를 다시 시작합니다. 이렇게 하려면 다음 cmdlet을 실행합니다.
- Restart-Service -Name W3SVC, WAS -Force
참고
레지스트리가 변경된 환경의 모든 Exchange Server 2013 기반 서버에서 이러한 서비스를 다시 시작합니다.
알려진 문제
직렬화 데이터에 서명하는 기능을 사용하도록 설정한 경우 만료된 인증 인증서로 인해 Get-ExchangeCertificate cmdlet이 인증서 세부 정보를 반환할 수 없습니다.
Microsoft Exchange Server 2019, 2016 또는 2013용 2023년 1월 또는 2023년 2월 보안 업데이트가 설치되고 PowerShell 직렬화 페이로드의 인증서 서명을 사용하도록 설정한 후 Exchange 도구 상자 및 큐 뷰어가 시작되지 않습니다. 자세한 내용은 PowerShell 직렬화 페이로드의 인증서 서명을 사용하도록 설정한 후 Exchange 도구 상자 및 큐 뷰어가 실패함(KB5023352)를 참조하세요.
직렬화 데이터에 서명하는 기능을 사용하도록 설정한 경우 Get-ExchangeCertificate cmdlet은 Exchange 관리 도구가 설치되어 있지만 다른 Exchange Server 역할이 없는 컴퓨터에서 실행될 때 표시되는 값을 반환하지 않습니다. 이 문제는 인증 인증서가 유효한지 여부에 관계없이 발생합니다.
Exchange Server에 포함된 일부 스크립트(예: RedistributeActiveDatabases.ps1)는 다음 조건에 해당하는 경우 제대로 작동하지 않습니다.
- PowerShell 직렬화 페이로드 기능 서명이 활성화되었습니다.
- Exchange RBAC에서 제공하는 기본 보안 그룹을 사용하지 않습니다.
- 스크립트를 실행하는 사용자가 조직 관리 역할 그룹의 구성원이 아닙니다.