Ich versuche eine Verbindung zu Kafka herzustellen, wenn TLS von C# -Client aktiviert ist und die Ausnahme "Die empfangene Nachricht wurde unerwartet oder schlecht formatiert" während empfangen wird Anruf an sslStream.AuthenticateAsClient()
. Leider hat mir bisher keiner der Beiträge im Internet geholfen, das Problem zu lösen. Irgendeine Idee, was kann falsch sein?C# -> Kafka über TLS: "Die empfangene Nachricht war unerwartet oder falsch formatiert"
ist hier minimal I C# Codebeispiel verwendete Verbindung
namespace test_tls {
class Program {
static string clientCertificateFile = "C:\\Temp\\<CLIENT_CERTIFICATE_FILE>.crt";
static X509Certificate2 clientCertificate = new X509Certificate2(clientCertificateFile);
static void Main(string[] args) {
var clientCertificateCollection = new X509Certificate2Collection(new X509Certificate2[] { clientCertificate });
try {
using(var client = new TcpClient("<IP_ADDRESS>", 9093))
using(var sslStream = new SslStream(client.GetStream(), false, CertificateValidator)) {
sslStream.AuthenticateAsClient("<TARGET_HOST_NAME_AS_IN_THE_CERTIFICATE>",
clientCertificateCollection, SslProtocols.Tls, false);
//send/receive from the sslStream
}
}
catch(Exception e) {
Console.Out.WriteLine(e);
Console.Out.WriteLine("\n\n\nPress ENTER to exit");
Console.In.ReadLine();
}
}
static bool CertificateValidator(Object sender,
X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) {
if(sslPolicyErrors == SslPolicyErrors.None) {
return true;
}
if(sslPolicyErrors == SslPolicyErrors.RemoteCertificateChainErrors) {
//we don't have a proper certificate tree
return true;
}
return false;
}
}
}