Bu hata, HttpClient tarafından HTTPS üzerinden yapılan istekler için bir sunucu sertifikası belirtilmediğinde veya varsayılan geliştirici sertifikasının bulunamadığında ortaya çıkar. Bu durumu düzeltmek için aşağıdaki adımları izleyebilirsiniz:
1. **Geliştirici Sertifikası Oluşturma**: Dotnet CLI kullanarak geliştirici sertifikası oluşturun. Terminal veya komut istemcisinde aşağıdaki komutu çalıştırın:
dotnet dev-certs https --trust
Çıktısı:
Bu komut geliştirici sertifikasını oluşturur ve güvenilir bir köke ekler.
2. **Uygulamada Sertifika Kullanımı**: HttpClient kullanırken, sertifikayı belirtmek için HttpClientHandler sınıfını kullanabilirsiniz. Bu durumda, HttpClientHandler örneğini oluştururken sertifikayı belirtmeniz gerekecek.
Örneğin:
HttpClientHandler clientHandler = new HttpClientHandler();
clientHandler.ServerCertificateCustomValidationCallback = (sender, cert, chain, sslPolicyErrors) => true;
using (var client = new HttpClient(clientHandler))
{
// HttpClient kullanarak işlemleri gerçekleştirin
}
Yukarıdaki kod, HttpClientHandler örneğini oluştururken sunucu sertifikasının doğrulamasını devre dışı bırakır. Bu, geliştirme ortamında genellikle kullanışlıdır, ancak üretim ortamında güvenlik riski oluşturabilir. Üretim ortamında, geçerli bir sunucu sertifikası kullanılması önerilir.