只有在使用无法自行创建 PKI 密钥对和客户端证书的 OPC UA 客户端时,才会涉及此部分内容。此时,可通过 OpenSSL 生成一个私钥和一个公钥,生成一个 X.509 证书,并对该证书进行签名。
OpenSSL 属于传输层安全工具,可用来创建证书。您还可以使用其它工具,例如 XCA,一款密钥管理软件,该软件具有图形用户界面,改进了已颁发证书的总览功能。
要在 Windows 系统中使用 OpenSSL,请按以下步骤操作:
在 OpenSSL 系统中,安装 Windows。如果操作系统为 64 位,则 OpenSSL 将安装在“C:\OpenSSL-Win64”目录中。OpenSSL-Win64 作为开源软件,可从不同的软件提供商处下载。
创建一个目录,如“C:\demo”。
打开命令提示符。为此,单击“Start”,并在搜索栏中输入“cmd”或“command prompt”。右键单击结果列表中的“cmd.exe”,并以管理员身份运行该程序。Windows 将打开命令提示符。
切换到“C:\demo”目录。为此,可输入以下命令:“cd C:\demo”。
设置以下网络变量:
- set RANDFILE=c:\demo\.rnd
- set OPENSSL_CONF=C:\OpenSSL-Win64\bin\openssl.cfg
下图显示了包含以下命令的命令行窗口:
现在,启动 OpenSSL。如果 OpenSSL 已安装在 C:\OpenSSL-Win64 目录中,则可输入:C:\OpenSSL-Win64\bin\openssl.exe。下图显示的命令行窗口中包含以下命令:
生成私钥。将密钥保存到“myKey.key”文件。在本示例中,密钥的长度为 1024 位;为了实现更高的 RSA 安全性,实际长度采用 2048 位。输入以下命令:“genrsa -out myKey.key 2048”(在本示例中为“genrsa -out myKey.key 1024”)。下图显示了包含该命令的命令行以及 OpenSSL 输出结果:
生成一个 CSR (Certificate Signing Request)。为此,可输入以下命令:“req -new -key myKey.key -out myRequest.csr”。在该命令的执行过程中,OpenSSL 将查询有关证书的信息:
- 国家/地区名称:如,“DE”为德国,“FR”为法国
- 州或省名称:例如“Bavaria”。
- 位置名称:如,“Augsburg”
- 机构名称:输入公司的名称。
- 机构单位名称:如,“IT”
- 公共名称:如,“OPC UA client of machine A”
- 电子邮件地址:
提示 针对固件版本为 V2.5、作为服务器的 S7-1500 CPU 的注意事项客户端程序的 IP 地址需存储在 S7-1500 CPU 版本 V2.5(仅针对此版本)所创建证书的“主题备用名称”(Subject Alternative Name) 字段中;否则 CPU 将不接受该证书。 |
输入的信息将添加到证书中。下图显示了包含该命令的命令行以及 OpenSSL 输出结果:
该命令将在包含有 Certificate Signing Request (CSR) 的 C:\demo 目录中创建一个文件;在本示例中,为“myRequest.csr”。
可通过以下两种方式使用 CSR:
将 CSR 发送到证书颁发机构 (CA):读取特定证书颁发机构的信息。证书颁发机构 (CA) 将检查用户的身份和信息(认证),并使用该证书颁发机构的私钥对该证书进行签名。如,接收已签名的 X.509 证书,并将该证书用于 OPC UA、HTTPS 或 Secure OUC (secure open user communication) 中。通信伙伴将使用该证书颁发机构的公钥检查该证书是否确实由 CA 机构颁发(即,该证书颁发机构已确定您的信息)。
用户对 CSR 进行自签名:使用用户的私钥。该选项将在下一个操作步骤中介绍。
输入以下命令,生成一个证书并对自签名(自签名证书):“x509 -req -days 365 -in myRequest.csr -signkey myKey.key -out myCertificate.crt”。
下图显示了包含以下命令和 OpenSSL 的命令行窗口:
该命令将生成一个 X.509 证书,其中包含通过 CSR 传送的属性信息(在本示例中,为“myRequest.csr”),例如有效期为一年(-days 365)。该命令还将使用私钥对证书进行签名(在本示例中为“myKey.key”)。通信伙伴可使用公钥(包含在证书中)检查您是否拥有属于该公钥的私钥。这样还可以防止公钥被攻击者滥用。
通过自签名证书,用户可确定自己证书中的信息是否正确。此时,*依靠任何机构即可检查信息是否正确。
产品推荐
友情链接