在程序数据中无法识别我正在使用的证书(client2.p12)。证书的路径为:C:\ProgramData\OPC Foundation\CertificateStores\MachineDefault\client2.p12
我手动创建了此路径。
如果我使用此代码并将证书放入具有以下代码的文件夹中,则可以使用证书:
var appCertificate = new X509Certificate2(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @".\certs\client2.p12"), "123");
config.SecurityConfig.ApplicationCertificate = new(appCertificate);
我想要的是:
ApplicationCertificate = new CertificateIdentifier
{
StoreType = "Directory",
StorePath = @"%CommonApplicationData%\OPC Foundation\CertificateStores\MachineDefault",
SubjectName = "client2.p12"
//or this? SubjectName = "O=Siemens, C=DE, CN=Siemens TIA Project(4JGMmGiXXkylgtqHpIhfvg)"
},
我得到的错误:找不到应用程序证书
我把证书放在前面提到的地方了。
谢谢!
1条答案
按热度按时间t40tm48m1#
我相信我期待了一些错误的东西。要使用现有的证书,您可以使用(下面是另一个版本):
因此,如果要使用ProgramData中的路径,可以只使用我在答案中使用的路径
现在,如果您没有证书,但希望在运行时创建一个证书,则可以使用以下命令:
你的
config.SecurityConfiguration.ApplicationCertificate
可以是这样的:如果在XML文件中使用,则相同
要获取要制作的证书的本地IP和DNS,请执行以下操作:
现在,您可以创建证书并将其插入到配置中:
现在,每当您运行此代码时,它都会生成一个证书
编辑:要获取您使用前面的代码创建的保存证书: