Код: Выделить всё
IPAWSOPEN120015
120015
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
CN=pte IGC Device CA 2, OU=pte IdenTrust Global Common, O=pte IdenTrust, C=US
85078691865265681897202180372564782639
CN=IPAWSOPEN120015, OU=A0141320000018F5E13E0AD000015E0, OU=Devices IPAWS, OU=National Continuity Programs, O=*** ***, C=US
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
ONS-b9e4f45396e1404ebc388fec35b8f403
SyedPalms
2026-02-18T20:39:59+05:30
Actual
Alert
ONSPublic120015IPAWSv1.0B8t07tR+THJxYy4nuBjoKJKVIHc5/CU813ErnutsmRU=
lDa4IJpckakEsnDUYqYvE6D6nckJSXITT4DjB2hA+KW8ANLpmybgzjlhz061gh6lmNzgjkzGsaV4D19Nn5yMqJ6+5GqGjTlemN6HjTIToC88hOi2nQbwrzwCtte3JVC/xJDLEmwZ5C3d9CYOMx1Mgfkm3rjbfDbIJzby/GSuwPQ+FRbzQdAsuk+7qO4j+2bEMqPXS7CmDq3xJ1XrETTeh4rcjZkLn5Qk3P4H46OxPjHjKK8aDedVQJmU0WQ4BFvR/GgX5bLKTsnwOd9iF/QhOcZlwirGnpjikuUAO9KWoO4tp+xUT9LfA9XXOfgWWkgILK7+mXm4gQ4TJP3LbL514w==
CN=pte IGC Device CA 2, OU=pte IdenTrust Global Common, O=pte IdenTrust, C=US
85078691865265681897202180372564782639
CN=IPAWSOPEN120015, OU=A0141320000018F5E13E0AD000015E0, OU=Devices IPAWS, OU=National Continuity Programs, O=*** ***, C=US
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
Это я бы отправил на конечную точку через httpclient.
Когда я запускаю это через локальные окна, все работает правильно.
Но когда я выполняю то же самое с помощью докера Linux, я получаю ответ 208
Код: Выделить всё
{
"identifier": "ONS-b5d57bc576cb43b29ca986619b4cda1d",
"launchID": 1234,
"reference": {
"identifier": "ONS-b5d57bc576cb43b29ca986619b4cda1d",
"sender": "SyedPalms",
"sent": "2026-02-18T10:16:25+00:00",
"referenceString": "SyedPalms,ONS-b5d57bc576cb43b29ca986619b4cda1d,2026-02-18T10:16:25+00:00"
},
"status": [
{
"channelName": "CAPEXCH",
"error": true,
"statusCode": "208",
"statusDescription": "alert-signature-not-valid"
},
{
"channelName": "CAPEXCH",
"error": true,
"statusCode": "221",
"statusDescription": "invalid-CAPEXCHANGE-message"
}
],
"carriers": null
}
Код: Выделить всё
private async Task
PostSignedAlertXml(CAPHeaderTypeDef header, alert alert)
{
var cert = _client.ClientCredentials.ClientCertificate.Certificate;
// Build complete certificate chain
var chainCerts = BuildCertificateChain(cert);
// Step 1: Sign the alert XML
var signedAlert = AlertSigner.AddSignature(alert, cert);
// Step 2: Serialize the signed alert to XML string
var alertXml = SerializeAlertToXml(signedAlert);
//Log.Information("SignedAlert - \n" + alertXml);
// Step 3: Build SOAP envelope with signed alert
var soapXml = $@"
{System.Security.SecurityElement.Escape(header.logonUser)}
{header.logonCogId}
{alertXml}
";
_logger.Information("[PostSignedAlertXml] SOAP envelope built, signing SOAP body...");
// Step 4: Sign the SOAP body
var signer = new RequestSigner(cert);
var signedSoapDoc = signer.SignSoapRequest(soapXml, alert.identifier, true);
//Log.Information("SignedSOAP - \n" + signedSoapDoc);
// Step 5: Send via raw HTTPS with client certificate AND chain
var endpoint = _client.Endpoint.Address.Uri;
using var handler = new System.Net.Http.HttpClientHandler();
// Add leaf certificate
handler.ClientCertificates.Add(cert);
// Add intermediate certificates to the handler
foreach (var chainCert in chainCerts.Where(c => !c.Equals(cert)))
{
handler.ClientCertificates.Add(chainCert);
_logger.Information("[PostSignedAlertXml] Added chain cert: {Subject}", chainCert.Subject);
}
// Only bypass SERVER certificate validation if needed for testing
// handler.ServerCertificateCustomValidationCallback = (message, cert2, chain, errors) => true;
using var httpClient = new System.Net.Http.HttpClient(handler);
var content = new System.Net.Http.StringContent(signedSoapDoc.OuterXml, System.Text.Encoding.UTF8, "text/xml");
content.Headers.Remove("Content-Type");
content.Headers.TryAddWithoutValidation("Content-Type", "text/xml; charset=utf-8");
content.Headers.TryAddWithoutValidation("SOAPAction", "\"http://***.***.****.services/IPAWS_CAPService/postCAP\"");
_logger.Information("[PostSignedAlertXml] Sending to {Endpoint} with {ChainCount} certificates and Body As {}", endpoint, chainCerts.Count, signedSoapDoc.OuterXml);
var response = await httpClient.PostAsync(endpoint, content);
var responseXml = await response.Content.ReadAsStringAsync();
if (!response.IsSuccessStatusCode)
{
_logger.Error("[PostSignedAlertXml] HTTP {StatusCode}: {Response}", response.StatusCode, responseXml);
throw new System.Net.Http.HttpRequestException($"IPAWS returned {response.StatusCode}");
}
_logger.Information("[PostSignedAlertXml] Received response");
// Step 6: Parse SOAP response
var xdoc = System.Xml.Linq.XDocument.Parse(responseXml);
var ns = System.Xml.Linq.XNamespace.Get("http://schemas.xmlsoap.org/soap/envelope/");
var nsIPAWS = System.Xml.Linq.XNamespace.Get("http://***.***.****.services/IPAWS_CAPService/");
var bodyElement = xdoc.Root?.Element(ns + "Body");
var responseElement =
bodyElement?.Element(nsIPAWS + "postCAPResponse")
?? bodyElement?.Element(nsIPAWS + "postCAPResponseTypeDef");
if (responseElement == null)
{
_logger.Error("[PostSignedAlertXml] Invalid SOAP response: {Response}", responseXml);
throw new InvalidOperationException("Invalid SOAP response received from IPAWS");
}
var serializer = responseElement.Name.LocalName == "postCAPResponseTypeDef"
? new System.Xml.Serialization.XmlSerializer(
typeof(postCAPResponse),
new System.Xml.Serialization.XmlRootAttribute
{
ElementName = "postCAPResponseTypeDef",
Namespace = "http://***.***.****.services/IPAWS_CAPService/"
})
: new System.Xml.Serialization.XmlSerializer(
typeof(postCAPResponse),
"http://***.***.****.services/IPAWS_CAPService/");
using var reader = responseElement.CreateReader();
return (postCAPResponse)serializer.Deserialize(reader);
}
Что мне не хватает??
Подробнее здесь: https://stackoverflow.com/questions/798 ... nux-docker
Мобильная версия