C# webrequest POST с ошибкой p12 405
Вырвать мои волосы. У нас есть файл p12, который не может быть экспортирован в.pfx, так что решение по stackru не помогло.
Используя SOAPUI, я получаю ответ, но от моего клиента C# (2014), написанного как консольное приложение, я получаю только ошибку 405.
код следует:
string host = "https://dev-cust-ws.m2xxx.com:8443/xyz/supplier/ws";
string certName = @"C:\\Users\\Neal.Rogers\\Desktop\\fmcgx201802.p12";
string password = @"fmGCG@fGnnnn";
X509Certificate2Collection certificates = new X509Certificate2Collection();
certificates.Import(certName, password, X509KeyStorageFlags.UserKeySet | X509KeyStorageFlags.PersistKeySet);
ServicePointManager.ServerCertificateValidationCallback = (a, b, c, d) => true;
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(host);
req.AllowAutoRedirect = true;
req.ClientCertificates = certificates;
req.ContentType = "application/x-www-form-urlencoded";
req.Method = "POST";
req.ContentLength = (long)strEnvelope.Length;
Stream postStream = req.GetRequestStream();
postStream.Write(postDataBytes, 0, (int)postDataBytes.Length);
postStream.Flush();
postStream.Close();
WebResponse resp = req.GetResponse();
попробовал следующее
string soapUrl = "https://dev-cust-ws.m2xxxx.com:8443/xyz/supplier/ws";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(soapUrl);
request.ContentType = "application/x-www-form-urlencoded";
var store = new X509Store(StoreName.TrustedPeople, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly);
var cert = store.Certificates.Find(X509FindType.FindByThumbprint, "D0C126412A77DEA313A926DBC34BFC1EDDEDFD58", false)[0];
request.ClientCertificates.Add(cert);
request.Method = "POST";
request.Timeout = 60000;
request.ContentLength = (long)strEnvelope.Length;
Stream requestStream = request.GetRequestStream();
requestStream.Write(postDataBytes, 0, (int)postDataBytes.Length);
requestStream.Close();
HttpWebResponse resp = (HttpWebResponse)request.GetResponse();
StreamReader responseReader = new StreamReader(resp.GetResponseStream(), Encoding.UTF8);
strReturn = responseReader.ReadToEnd();
resp.Close();
заранее спасибо