private void InitializeFromConfig(KubernetesClientConfiguration config) { if (BaseUri.Scheme == "https") { if (config.SkipTlsVerify) { HttpClientHandler.ServerCertificateCustomValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true; } else { if (CaCerts == null) { throw new KubeConfigException("A CA must be set when SkipTlsVerify === false"); } HttpClientHandler.ServerCertificateCustomValidationCallback = (sender, certificate, chain, sslPolicyErrors) => { return(CertificateValidationCallBack(sender, CaCerts, certificate, chain, sslPolicyErrors)); }; } } // set credentails for the kubernetes client SetCredentials(config); config.AddCertificates(HttpClientHandler); }
private void InitializeFromConfig(KubernetesClientConfiguration config) { if (BaseUri.Scheme == "https") { if (config.SkipTlsVerify) { #if NET452 ((WebRequestHandler)HttpClientHandler).ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true; #elif XAMARINIOS1_0 || MONOANDROID8_1 System.Net.ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => { return(true); }; #else HttpClientHandler.ServerCertificateCustomValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true; #endif } else { if (CaCerts == null) { throw new KubeConfigException("A CA must be set when SkipTlsVerify === false"); } #if NET452 ((WebRequestHandler)HttpClientHandler).ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => { return(Kubernetes.CertificateValidationCallBack(sender, CaCerts, certificate, chain, sslPolicyErrors)); }; #elif XAMARINIOS1_0 System.Net.ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => { var cert = new X509Certificate2(certificate); return(Kubernetes.CertificateValidationCallBack(sender, CaCerts, cert, chain, sslPolicyErrors)); }; #elif MONOANDROID8_1 var certList = new System.Collections.Generic.List <Java.Security.Cert.Certificate>(); foreach (X509Certificate2 caCert in CaCerts) { using (var certStream = new System.IO.MemoryStream(caCert.RawData)) { Java.Security.Cert.Certificate cert = Java.Security.Cert.CertificateFactory.GetInstance("X509").GenerateCertificate(certStream); certList.Add(cert); } } var handler = (Xamarin.Android.Net.AndroidClientHandler) this.HttpClientHandler; handler.TrustedCerts = certList; #else HttpClientHandler.ServerCertificateCustomValidationCallback = (sender, certificate, chain, sslPolicyErrors) => { return(Kubernetes.CertificateValidationCallBack(sender, CaCerts, certificate, chain, sslPolicyErrors)); }; #endif } } // set credentails for the kubernetes client SetCredentials(config); config.AddCertificates(HttpClientHandler); }