我正在编写OPC UA客户端以连接到Sofnet(西门子的OPC服务器)。要连接的Server方法是SignAndEncrypt,所以我需要一个“der”格式的x509证书。
我使用openssl创建了自己的自签名证书,但是有一个名为“Subject Alt Names”的字段,我必须在其中指定URI的应用程序。我已经看到这个字段可以用openssl填充配置文件,但是当我创建cert时,我看不到“Subject Alt Names”。
有人可以帮助我创建证书或给我一个线索来验证我的OPC客户端吗?
提前致谢。
答案 0 :(得分:2)
你可以创建一个bash文件(即:mkcert.sh),它将执行以下所有过程:
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。