示例:基于 TLS 的 HTTP

2021-07-23 浏览次数:92
示例:基于 TLS 的 HTTP

下图显示了如何使用介绍的机制在 S7-1500 CPU 的 Web 浏览器和 Web 服务器之间创建安全通信。

首先介绍如何更改 STEP 7 中的选项“仅允许通过 HTTPS 进行访问”(Permit access only through HTTPS)。自 STEP 7 V14 起,您可以影响固件版本为 V2.0 及更高版本的 S7-1500 CPU Web 服务器的服务器证书:此服务器证书采用该版本及更高版本的 STEP 7 生成。

此外,还显示了使用 PC 的 Web 浏览器通过加密的 HTTPS 连接调用 CPU 的 Web 服务器网站时采用的过程。

使用固件版本为 V2.0 及更高版本 S7-1500 CPU 的 Web 服务器证书

对于固件版本 V2.0 及以下版本的 S7-1500 CPU,设置 Web 服务器属性时,如果无特殊要求,需设置为“只允许通过 HTTPS 访问”(Permit access only with HTTPS)。

对于此类 CPU,您*参与证书的处理过程;CPU 将自动为 Web 服务器生成所需证书。

对于固件版本 V2.0 及更高版本的 S7-1500 CPU,STEP 7 会为 CPU 生成服务器证书(较终实体证书)。在 CPU 的属性中为 Web 服务器分配服务器证书(“Web 服务器 > 服务器安全”(Web server > Server security))。

由于服务器证书名称始终预设,因此 Web 服务器的简单组态没有任何变化:激活 Web 服务器并激活选项“仅允许使用 HTTPS 进行访问”(Permit access only with HTTPS) - STEP 7 会在编译期间使用预设名称生成服务器证书。

无论您是否在全局安全设置中使用证书管理器:STEP 7 都具备生成服务器证书所需的全部信息。

此外,您还可以确定服务器证书的属性,例如名称或有效期等。


提示

在 CPU 中,必须设置当前的日期/时间。

使用安全通信(如,HTTPS、安全 OUC、OPC UA)时,需确保相应模块为当前时间和当前日期。否则,模块将所用的证书评估为无效,同时不进行安全通信。



下载 Web 服务器证书

将硬件配置下载到 CPU 中时,还会自动加载 STEP 7 生成的服务器证书。

如果您在全局安全设置中使用证书管理器,则项目的证书颁发机构(CA 证书)会对 Web 服务器的服务器证书进行签名。下载时,项目的 CA 证书也会自动加载。

如果未在全局安全设置中使用证书管理器,则 STEP 7 会生成服务器证书作为自签名证书。

通过 CPU 的 IP 地址对 CPU 的 Web 服务器进行寻址时,每次 CPU 中以太网接口的 IP 地址发生更改时,都必须生成新的服务器证书并加载(较终实体证书)。这是由于 CPU 的身份随 IP 地址一同更改。根据 PKI 规则,该身份必须进行签名。

如果使用域名(如,“myconveyer-cpu.”)而非 IP 地址对 CPU 进行寻址,则可避免这一问题。为此,需要通过 DNS 服务器对 CPU 的域名进行管理。

为 Web 浏览器提供一份 Web 服务器的 CA 证书

在 Web 浏览器中,通过 HTTPS 访问 CPU 网站时,需安装该 CPU 的 CA 证书。如果未安装证书,则将显示一条警告消息,不建议访问该页面。要查看该页面,需显式“添加例外情况”。

有效的 root 证书(证书颁发机构),可从 Web 服务器“简介”(Intro) Web 页面的“下载证书”(Download certificate) 中下载。

在 STEP 7 中,可采用另一种方式:使用证书管理器,将项目的 CA 证书导出到 STEP 7 中的全局安全设置中。之后,再将 CA 证书导入浏览器中。

安全通信的过程

下图简要说明了通信的建立方式(“握手”),并着重介绍了数据交换(此处,通过 HTTP over TLS)所用密钥的协商过程。

然而,该过程在理论上适用于以使用 TLS 为基础的所有通信选项,即,也适用于安全的开放式用户通信(请参见安全通信基础)。


在本示例图中并不涉及 Alice 端(浏览器端)对 Web 服务器所发送证书的验证措施。Alice 能否信任传送的 Web 服务器证书,并因此而信任该 Web 服务器的身份以及允许数据交换,取决于验证结果。

验证 Web 服务器可靠性的步骤如下:

    Alice 必须获得所有相关证书颁发机构的公钥,即,必须拥有整个证书链,才能对该 Web 服务器证书(即,Web 服务器的较终实体证书)进行验证。

    Alice 的证书存储器中通常包含所需的根证书。安装 Web 浏览器时,将自动安装所有可信的 Root 证书。如果她没有根证书,则需要从证书颁发机构下载该证书并将其安装到浏览器的证书存储器内。证书颁发机构还可以是该 Web 服务器所处的设备。

    可通过以下几种方式获得中间证书:

    - 服务器本身以签名消息的方式将所需中间证书连同其较终实体证书一并发送给 Alice,这样,Alice 即可对证书链的完整性进行检查。

    - 在这些证书中,通常包含证书签发者的 URL。Alice 可通过这些 URL 加载所需的中间证书。

    在 STEP 7 中处理证书时,始终假设您已将所需中间证书和根证书导入到项目中,并已将其分配给模块。

    Alice 使用这些证书的公钥,对证书链中的签名进行验证。

    对称密钥必须已生成并且已传送至 Web 服务器。

    如果采用域名寻址 Web 服务器,则 Alice 需要根据 RFC 2818 中定义的 PKI 规则验证该 Web 服务器的身份。由于该 Web 服务器的 URL(在这种情况下,为“Fully Qualified Domain Name”(FQDN))保存在 Web 服务器的较终实体证书内,因此 Alice 可对该 Web 服务器的身份进行验证。如果字段“Subject Alternative Name”中的证书项与浏览器地址栏中的一致,则通过验证。

之后,即可通过对称密钥进行数据交换,如上图所示。


shtxjd.cn.b2b168.com/m/
top