SSLCACertificateFile "conf/ssl.crt/testrootca-crt.pem"
< /code>
Bei Verwendung eines äquivalenten Java- oder Python -Clients überprüft der Server das Zertifikat und PHP -Berichte erfolgreich: < /p>
ssl_client_verify: Erfolg < /p>
gewünschtes Verhalten
Der PHP -Server gibt den Status überprüfen ($ _server ["ssl_client_verify"]). Der Status überprüfen immer Erfolg, nicht fehlgeschlagen: Das erste Zertifikat kann nicht überprüft werden.using System;
using System.Data.SqlTypes;
using System.Net.Http;
using System.Runtime.ConstrainedExecution;
using System.Security.Cryptography.X509Certificates;
using System.Threading.Tasks;
// Hello3
//
class Program
{
// Hauptprogramm
static async Task Main()
{
// Load Client Certifikate
// EC
//string certpath = "C:\\temp\\CAItest\\signed.p12";
// RSA
string certpath = "C:\\Austausch\\SSLneu2\\client-chain.p12";
Console.WriteLine(certpath);
byte[] rawCert = File.ReadAllBytes(certpath);
X509Certificate2Collection certificateCollection = X509CertificateLoader.LoadPkcs12Collection(
rawCert,
"David",
X509KeyStorageFlags.Exportable | X509KeyStorageFlags.PersistKeySet
);
Console.WriteLine("List content of Collection");
foreach (X509Certificate2 c in certificateCollection) Console.WriteLine($"{c.Subject} - HasPrivateKey={c.HasPrivateKey}");
Console.WriteLine($"Number of Certifikates in PFX: {certificateCollection.Count}");
var handler = new HttpClientHandler();
handler.ClientCertificateOptions = ClientCertificateOption.Manual;
// Accept all Server Certifikates
handler.ServerCertificateCustomValidationCallback =
(httpRequestMessage, cert, cetChain, policyErrors) =>
{
return true;
};
handler.ClientCertificates.AddRange(certificateCollection);
using HttpClient client = new HttpClient(handler);
string url = "https://localhost/mbbsim/test4.php?params=dotnet"; // Call PHP test mock
try
{
HttpResponseMessage response = await client.GetAsync(url);
response.EnsureSuccessStatusCode(); // Exception, wenn der Statuscode nicht erfolgreich ist
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch (HttpRequestException e)
{
Console.WriteLine($"Request-Fehler: {e.Message}");
}
}
}
< /code>
Der Code für den PHP -basierten Server: < /p>
menno
< /code>
Es gibt derzeit keine Ausnahmen. Php /8.2.12
Intellij Idee 2024.3.4.1 (Community Edition) JDK 1.8 < /p>
Verwendete Zertifikate (erstellt mit OpenSSL 64bit): < /p>
Client (c# oder java) < /p>
client-chain.p12 - certificate chain with client certificate with private Key and intermediate CA certificate
testrootca-crt.pem - self signed root certificate
< /code>
Serverkonfiguration (Apache) < /p>
SSLCertificateFile "conf/ssl.crt/apache-chain-crt.pem" - certificate chain with server certificate with private Key and intermediate CA certificate
SSLCertificateKeyFile "conf/ssl.key/apache-key.pem" - private Key of Apache Server
SSLCACertificateFile "conf/ssl.crt/testrootca-crt.pem" - CA certificate for client authentication (self signed root certificate)
Bei der Ausführung der Client -Authentifizierung mit einer Zertifikatskette in C# .NET 9.0 gibt der Server (Apache /Php) zurück: < /p>
ssl_client_verify: fehlgeschlagen: Die erste Zertifikatkonfiguration kann nicht überprüft werden.[code]SSLCACertificateFile "conf/ssl.crt/testrootca-crt.pem" < /code> Bei Verwendung eines äquivalenten Java- oder Python -Clients überprüft der Server das Zertifikat und PHP -Berichte erfolgreich: < /p>
ssl_client_verify: Erfolg < /p>
gewünschtes Verhalten Der PHP -Server gibt den Status überprüfen ($ _server ["ssl_client_verify"]). Der Status überprüfen immer Erfolg, nicht fehlgeschlagen: Das erste Zertifikat kann nicht überprüft werden.using System; using System.Data.SqlTypes; using System.Net.Http; using System.Runtime.ConstrainedExecution; using System.Security.Cryptography.X509Certificates; using System.Threading.Tasks;
// Hello3 // class Program { // Hauptprogramm static async Task Main() { // Load Client Certifikate
Console.WriteLine("List content of Collection"); foreach (X509Certificate2 c in certificateCollection) Console.WriteLine($"{c.Subject} - HasPrivateKey={c.HasPrivateKey}");
Console.WriteLine($"Number of Certifikates in PFX: {certificateCollection.Count}");
using HttpClient client = new HttpClient(handler); string url = "https://localhost/mbbsim/test4.php?params=dotnet"; // Call PHP test mock
try { HttpResponseMessage response = await client.GetAsync(url); response.EnsureSuccessStatusCode(); // Exception, wenn der Statuscode nicht erfolgreich ist
string responseBody = await response.Content.ReadAsStringAsync(); Console.WriteLine(responseBody); } catch (HttpRequestException e) { Console.WriteLine($"Request-Fehler: {e.Message}"); } } } < /code> Der Code für den PHP -basierten Server: < /p>
menno
< /code> Es gibt derzeit keine Ausnahmen. Php /8.2.12 Intellij Idee 2024.3.4.1 (Community Edition) JDK 1.8 < /p> Verwendete Zertifikate (erstellt mit OpenSSL 64bit): < /p> Client (c# oder java) < /p> client-chain.p12 - certificate chain with client certificate with private Key and intermediate CA certificate testrootca-crt.pem - self signed root certificate < /code> Serverkonfiguration (Apache) < /p> SSLCertificateFile "conf/ssl.crt/apache-chain-crt.pem" - certificate chain with server certificate with private Key and intermediate CA certificate SSLCertificateKeyFile "conf/ssl.key/apache-key.pem" - private Key of Apache Server SSLCACertificateFile "conf/ssl.crt/testrootca-crt.pem" - CA certificate for client authentication (self signed root certificate) [/code]
Ich versuche, eine Gateway -Datenquelle für ein Power BI -semantischer Modell in einer C# -Anwendung zu erstellen:
using (PowerBIClient pbiClient = new PowerBIClient(new Uri( m_tokenCredentials))
{...
Alle verschleierten Teile sind in angegeben.
Ich habe MySQL auf Rocky Linux v9.5 mit MySQL Enterprise v9.1.0-1.1el9 eingerichtet.Mit einer Testversion von MySQL Enterprise Edition versuche ich, das...
Ich versuche, den Anmeldefluss auf diesem Python-Repo zu replizieren, aber in Swift. Es gibt 4 Schritte, wie in der Anmeldefunktion angezeigt, und ich habe Probleme mit dem zweiten Schritt. Ich habe...
Ich erstelle ein einfaches Projekt mit .NET 9 und Blazor, um zu zeigen, wie APIs mithilfe einzelner Konten geschützt werden. Ich habe den Code auf GitHub veröffentlicht.
Ich habe im Server- und...