2016-07-06 26 views
0

Ich versuche eine sichere Verbindung mit dem OPCUA Client mit einem Beckhoff Server herzustellen. Ich erhalte einen Fehler Kontrollzertifikat ist nicht vertrauenswürdig. Irgendwelche Vorschläge, wie man von hier aus vorgeht?OPC UA Sichere Verbindung C#

public bool connect(string url) { 
     // TODO implement security 
     // select the best endpoint. 
     EndpointDescription endpointDescription; 

     try { 
      endpointDescription = ClientUtils.SelectEndpoint(url, true); 
     } catch { 
      return false; 
     } 



     endpointDescription.SecurityPolicyUri = SecurityPolicies.Basic128Rsa15; 
     endpointDescription.SecurityMode = MessageSecurityMode.SignAndEncrypt; 


     EndpointConfiguration endpointConfiguration = EndpointConfiguration.Create(appConfig()); 

     ConfiguredEndpoint endpoint = new ConfiguredEndpoint(null, endpointDescription, endpointConfiguration); 


      m_session = Session.Create(
      appConfig(), 
      endpoint, 
      false, 
      false, 
      "Experiment", 
      60000, 
      useridentety, 
      preferredLocales); 

     // set up keep alive callback. 
     // TODO Verbindungsabbrüche behandeln 
     //m_session.KeepAlive += new KeepAliveEventHandler(Session_KeepAlive); 

     return m_session.Connected; 
    } 

Fehler:

2016-07-06 14:34:58.6683|ERROR|Control|Certificate is not trusted. 
SubjectName: [email protected], OU=Unit, O=Organization, L=LocationName, C=DE, DC=CX-25C711 IssuerName: [email protected], OU=Unit, O=Organization, L=LocationName, C=DE, DC=CX-25C711 bei Opc.Ua.CertificateValidator.Validate(X509Certificate2Collection chain) in C:\VIPA_OPC_NetClient\UANET\Stack\Core\Security\Certificates\CertificateValidator.cs:Zeile 249.bei Opc.Ua.CertificateValidator.Validate(X509Certificate2 certificate) in C:\VIPA_OPC_NetClient\UA-NET\Stack\Core\Security\Certificates\CertificateValidator.cs:Zeile 161. 
    bei Opc.Ua.Client.Session.Open(String sessionName, UInt32 sessionTimeout, IUserIdentity identity, IList`1 preferredLocales) in C:\OPC_NetClient\UA-NET\SampleApplications\SampleLibraries\Client\Session.cs:Zeile 1980. 
    bei Opc.Ua.Client.Session.Create(ApplicationConfiguration configuration, ConfiguredEndpoint endpoint, Boolean updateBeforeConnect, Boolean checkDomain, String sessionName, UInt32 sessionTimeout, IUserIdentity identity, IList`1 preferredLocales) in C:\OPC_NetClient\UA-NET\SampleApplications\SampleLibraries\Client\Session.cs:Zeile 818. 
    bei PerformanceTest.Experiment.connect(String url) in C:\OPC_NetClient\PerformanceTest\Experiment.cs:Zeile 210. 
    bei PerformanceTest.MainForm.runExperiment() in C:\OPC_NetClient\PerformanceTest\MainForm.cs:Zeile 148. 
2016-07-06 14:34:58.6683|ERROR|Control|Certificate is not trusted. 
SubjectName: [email protected], OU=Unit, O=Organization, L=LocationName, C=DE, DC=CX-25C711 
IssuerName: [email protected], OU=Unit, O=Organization, L=LocationName, C=DE, DC=CX-25C711 
    bei Opc.Ua.CertificateValidator.InternalValidate(X509Certificate2Collection certificates) in C:\VIPA_OPC_NetClient\UA-NET\Stack\Core\Security\Certificates\CertificateValidator.cs:Zeile 755. 
    bei Opc.Ua.CertificateValidator.Validate(X509Certificate2Collection chain) in C:\VIPA_OPC_NetClient\UA-NET\Stack\Core\Security\Certificates\CertificateValidator.cs:Zeile 189. 
2016-07-06 14:34:58.6933|ERROR|Control|Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt. 
    bei PerformanceTest.Experiment.disconnect() in C:\OPC_NetClient\PerformanceTest\Experiment.cs:Zeile 254. 
    bei PerformanceTest.MainForm.runExperiment() in C:\OPC_NetClient\PerformanceTest\MainForm.cs:Zeile 168. 
2016-07-06 14:34:58.6933|INFO|Control|Done running experiment 
+0

Welche Bibliothek verwenden Sie? – jgauffin

+0

Sie sollten weitere Informationen über den Fehler hinzufügen, den Sie erhalten – JSantos

+0

@JSantos Ich habe den Fehler zum Beitrag hinzugefügt. Tut mir leid, es ist ziemlich chaotisch. –

Antwort

0

Die Validierung des Zertifikats ist failling, weil der CN auf Ihr Zertifikat von der server.I nicht vertrauenswürdig ist: Angenommen, Sie das Zertifikat selbst erzeugt, vielleicht [email protected] 3.222 wird vom Server nicht als gültig angesehen. Ich weiß nicht, wie der Beckhoff-Server funktioniert, Sie sollten den Entwickler um Hilfe zu diesem Thema bitten.

Auch der IssuerName und der SubjectName sollten nicht gleich sein.

Ein gutes Werkzeug, um die Daten in einem Zertifikat zu überprüfen, ist keystore-explorer

Bit latte sorry, aber ich hoffe, es hilft.

+0

Danke Mann. Ich habe das Problem gefunden. Es war in der Tat die Calidierung des Zertifikats. Musste die vertrauenswürdigen Zertifikate auf dem Server manuell ändern. –