2016-07-06 26 views
0

OPCUAクライアントを使用してBeckhoff Serverを使用して安全な接続を確立しようとしています。コントロール証明書が信頼できないというエラーが表示されます。ここから進める方法に関する提案はありますか?OPC UAセキュア接続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; 
    } 

エラー:証明書の検証がfaillingさ

2016-07-06 14:34:58.6683|ERROR|Control|Certificate is not trusted. 
SubjectName: CN=TcOp[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

どのopc uaライブラリを使用していますか? – jgauffin

+0

あなたはエラーの詳細を追加する必要があります – JSantos

+0

@JSantos投稿にエラーが追加されました。申し訳ありません、その非常に乱雑です。 –

答えて

0

証明書のCNがserver.Iによって信頼されていないので、あなたは多分、証明書に[email protected]を自分で生成したとします。 3.222はサーバーによって有効とはみなされません。Beckhoffサーバーがどのように動作するのか分かりませんので、開発者にこの問題に関するヘルプを依頼する必要があります。

また、IssuerNameとSubjectNameは同じであってはなりません。

証明書のデータをチェックするための良いツールがkeystore-explorer

ビットラテ申し訳ありませんが、それができます願っています。

+0

ありがとうございます。私は問題を発見した。それは確かに証明書の校正でした。サーバー上の信頼できる証明書を手動で変更する必要がありました。 –

関連する問題