【问题标题】:Generate certificate for OPC client为 OPC 客户端生成证书
【发布时间】:2018-05-14 10:51:30
【问题描述】:

我正在编写一个 OPC UA 客户端以连接到 Sofnet(西门子的 OPC 服务器)。连接的服务器方法是SignAndEncrypt,所以我需要一个“der”格式的x509证书。

我使用 openssl 制作了自己的自签名证书,但是有一个名为“Subject Alt Names”的字段,我必须在其中指定 URI 的应用程序。我已经看到这个字段可以用 openssl 的配置文件填充,但是当我创建证书时,我看不到“主题替代名称”。

有人可以帮我创建证书或给我一个线索来验证我的 OPC 客户端吗?

提前致谢。

【问题讨论】:

  • 您是否使用工具包或 SDK 来开发您的客户端?这些通常具有有助于生成证书的文档或代码...

标签: openssl certificate x509certificate opc opc-ua


【解决方案1】:

您可以制作一个 bash 文件(即:mkcert.sh)来完成以下所有过程:

  • 创建 2048 位 RSA 密钥。
  • 创建证书请求。
  • 使用您自己的密钥(自签名证书)对其进行签名,并将 extensions.cnf 中的额外信息添加到证书中
  • 获取证书的 PEM 和 DER 版本(选择)

bash 文件应包含

openssl genrsa -out default_pk.pem 2048
openssl req -new -key default_pk.pem -out cert.csr -subj "/C=US/ST=NY/L=NY/O=Organization/OU=OrganizationUnit/CN={YOUR_IP}"
openssl x509 -req -days 3650 -extfile extensions.cnf -in cert.csr -signkey default_pk.pem -out public.pem
openssl x509 -in public.pem -inform PEM -out public.der -outform DER

然后您需要包含 SubjectAltName 信息和一些其他信息的 extensions.cnf 文件。

basicConstraints=CA:TRUE
authorityKeyIdentifier=keyid,issuer
keyUsage=dataEncipherment,keyEncipherment,nonRepudiation,digitalSignature,keyCertSign,cRLSign
extendedKeyUsage=serverAuth,clientAuth
subjectAltName=URI:URN:{YOUR_IP}

将这两种情况下的 {YOUR_IP} 替换为您的真实 OPC UA 客户端 IP。

【讨论】:

猜你喜欢
  • 2021-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-09
  • 2013-06-30
  • 1970-01-01
  • 1970-01-01
  • 2019-06-01
相关资源
最近更新 更多