PowerShell에서 프록시 호스트 이름을 IDNA ASCII로 변환
프록시 엔드포인트의 사용자가 유니코드 호스트 이름을 확인할 수 없을 때 국제화 도메인 이름을 IDNA ASCII 형식으로 변환합니다.
프록시 호스트 이름은 표시 형식에 국제 문자를 포함할 수 있습니다. IDNA ASCII 형식을 기대하는 클라이언트나 확인자는 전체 URL을 임의로 퍼센트 이스케이프한 복사본이 아니라 변환된 호스트 이름이 필요합니다.
PowerShell에서는 .NET이 변환을 직접 제공합니다.
$mapping = New-Object System.Globalization.IdnMapping
$asciiHost = $mapping.GetAscii($unicodeProxyHost)
$endpoint = New-Object System.UriBuilder
$endpoint.Scheme = 'http'
$endpoint.Host = $asciiHost
$endpoint.Port = 8080
$proxy = New-Object System.Net.WebProxy($endpoint.Uri)
unicodeProxyHost는 도메인 이름일 뿐입니다. 포트와 스킴은 별도로 유지됩니다. 요청을 보내는 HTTP 클라이언트에서 결과 프록시를 사용하십시오.
이미 구문 분석된 Uri의 경우 IdnHost가 IDNA 호환 호스트 이름 표현을 제공합니다. 이미 인코딩된 레이블을 반복해서 인코딩하는 대신 원래 엔드포인트를 검토하십시오.
확인 오류에서는 프록시의 호스트 이름과 대상의 호스트 이름을 구분하십시오. 한쪽을 변환해도 다른 쪽의 철자 오류나 누락된 DNS 레코드가 고쳐지지 않습니다. 인증서 ID를 위해 의도한 호스트 이름도 유지하십시오. 임의의 IP 주소로 바꾸면 연결의 다른 부분이 변경됩니다.