Based on your post, you want to call a REST service with a client certification, in this case you may use HttpClient class to send and receive Http Request/HttpResponse from URIs
https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpclient?view=net-5.0
Now you need to create a .pfx certificate from your key and certificate. There are many tools available for this in the web. Find a reference below
http://slproweb.com/products/Win32OpenSSL.html
Now in the C#, you can use the following sample code.
//load the certificate
var certPfx = new X509Certificate2("your pfx filename");
var clientHandler = new HttpClientHandler();
clientHandler.SslProtocols = SslProtocols.Tls12;
clientHandler.ClientCertificateOptions = ClientCertificateOption.Manual;
clientHandler.ClientCertificates.Add(certPfx);
clientHandler.ServerCertificateCustomValidationCallback += (HttpRequestMessage req, X509Certificate2 cert2, X509Chain chain, SslPolicyErrors err) => { return true; };
clientHandler.Proxy = new WebProxy("proxy address with port");
clientHandler.Credentials = new NetworkCredential("username", "password");
var client = new HttpClient(clientHandler);
client.BaseAddress = new Uri("<url to the service>");
var response = await client.GetAsync("relative path to the service with params");