为OPC客户端生成证书

时间:2018-05-14 10:51:31

标签: openssl certificate x509certificate opc opc-ua

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

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

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

提前致谢。

1 个答案:

答案 0 :(得分:2)

你可以创建一个bash文件(即:mkcert.sh),它将执行以下所有过程:

  • 创建2048位RSA密钥。
  • 创建证书申请。
  • 签署您自己的密钥(自签名证书)并将extensions.cnf中的额外信息添加到证书中
  • 获取证书的PEM和DER版本(opt)

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。