.NET Core는 SslStream 작동 방식에 많은 개선 사항과 호환성을 깨는 변경 사항을 가져왔습니다. 네트워크 보안과 관련된 가장 중요한 변경 사항은 클래스 ServicePointManager가 더 이상 사용되지 않으며, 레거시 WebRequest 인터페이스에만 영향을 준다는 것입니다.
각 SslStream 인스턴스마다 허용된 TLS 프로토콜과 인증서 유효성 검사 콜백을 SslServerAuthenticationOptions 또는 SslClientAuthenticationOptions를 통해 각각 개별적으로 구성해야 합니다. HTTPS에서 HttpClient사용되는 네트워크 보안 옵션을 구성하려면 기본 처리기에서 보안 옵션을 구성해야 합니다. HttpClient에서 사용되는 기본 처리기는 SocketsHttpHandler이며, 이 처리기에는 SslOptions을(를) 허용하는 SslClientAuthenticationOptions 속성이 있습니다.
사용자 지정 인증서 유효성 검사 콜백을 HttpClient 사용하여 만드는 방법을 보여 주는 다음 예제를 고려합니다.
bool CustomCertificateValidator(
object sender,
X509Certificate? certificate,
X509Chain? chain,
SslPolicyErrors sslPolicyErrors)
{
// TODO: Always returns false.
// Need to implement certificate evaluation logic.
return false;
}
HttpClient httpClient = new(
new SocketsHttpHandler
{
SslOptions =
{
RemoteCertificateValidationCallback = CustomCertificateValidator
}
});
다음 표에서는 TLS와 관련된 개별 ServicePointManager 속성을 마이그레이션하는 방법을 보여줍니다.
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET