C# - OPC-UA服务器应用程序尚未在Linux计算机中创建PKI证书

f2uvfpb9  于 2023-04-11  发布在  Linux
关注(0)|答案(1)|浏览(268)

当我在Windows机器上运行OPC-UA server C#应用程序时,OPC-UA服务器已经创建了一个证书路径C:\ProgramData\OPC Foundation\pki\own,并在该路径中生成了一些证书,但是当我在Linux机器中安装OPC-UA服务器时,服务器应用程序尚未创建证书路径,并且我没有收到任何类型的错误,例如拒绝访问路径。我正在使用下面的行在配置文件中创建证书路径。请帮助我们。

<ApplicationCertificate>
            <StoreType>Directory</StoreType>
            <StorePath>%CommonApplicationData%\OPC Foundation\pki\own</StorePath>
            <SubjectName>CN=OPCUA Server, C=US, S=Arizona, O=OPC Foundation, DC=localhost</SubjectName>
</ApplicationCertificate>
kqlmhetl

kqlmhetl1#

首先在linux上推荐用途:%LocalApplicationData%

ENM: System.Environment.SpecialFolder.LocalApplicationData
WIN: C:\Users\USER\AppData\Local
LIN: /home/USER/.local/share
OSX: /Users/USER/.local/share

如果你以超级用户/root/.local/share的身份运行它,路径就是。
如果以普通用户/home/victor/.local/share的身份运行
如果你想看到一个特殊文件夹的路径,使用这个:

Console.WriteLine("My folder: " + Environment.GetFolderPath( Environment.SpecialFolder.LocalApplicationData));

超级用户路径:

普通用户路径:

这可能有助于您找到文件夹。
由于我运行的程序作为超级用户,它是在(用户)-〉root/.local/share * 您只能访问此文件夹时,登录为根 *

以下是普通用户的另一个:

我的Securityconfiguration(我做了一个客户端,但我猜它和服务器几乎一样):

SecurityConfiguration = new SecurityConfiguration
            {
                ApplicationCertificate = new CertificateIdentifier { StoreType = @"Directory", StorePath = @"%LocalApplicationData%/OPCFoundation/CertificateStores/MachineDefault", SubjectName = "Mything" },
                TrustedIssuerCertificates = new CertificateTrustList { StoreType = @"Directory", StorePath = @"%LocalApplicationData%/OPCFoundation/CertificateStores/UA Certificate Authorities" },
                TrustedPeerCertificates = new CertificateTrustList { StoreType = @"Directory", StorePath = @"%LocalApplicationData%/OPCFoundation/CertificateStores/UA Applications" },
                RejectedCertificateStore = new CertificateTrustList { StoreType = @"Directory", StorePath = @"%LocalApplicationData%/OPCFoundation/CertificateStores/RejectedCertificates" },
                AutoAcceptUntrustedCertificates = true
            },

相关问题