为OPC客户端生成证书

3
我正在编写一个OPC UA客户端,以连接到西门子的Sofnet(OPC服务器)。服务器连接方法是SignAndEncrypt,因此我需要一个“der”格式的x509证书。
我使用openssl制作了自签名证书,但其中有一个称为“Subject Alt Names”的字段,我必须在其中指定URI的应用程序。我看到可以使用openssl配置文件填充此字段,但当我创建证书时无法看到“Subject Alt Names”。
是否有人能帮助我创建证书或给我提示如何验证我的OPC客户端?
提前感谢您。

你在使用工具包或SDK来开发你的客户端吗?这些通常都有文档或代码,可以帮助生成证书... - undefined
1个回答

8
您可以创建一个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。


我们如何在这里使{YOUR_IP}动态化? - undefined
@KishanKishore https://dev59.com/kW025IYBdhLWcg3wnnYw@KishanKishore https://dev59.com/kW025IYBdhLWcg3wnnYw - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接