借助PLC特定的许可证管理及其在应用程序对象属性中的设置，可以实现引导应用程序的专有技术保护和复制保护。在这种情况下，下载代码和启动应用程序将被加密。

---

### 用加密狗加密​

要求：您有一个项目，其中包含要作为加密启动应用程序下载到控制器的应用程序。用于许可证管理的安全密钥已连接到您的计算机。

  
1.在设备树中选择Application。

2.右键菜单中选择***属性***命令。  
⇒将打开***属性***对话框。

3.单击***加密***选项卡。

4.对于***加密技术***，选择***简单加密***选项，然后键入您从硬件制造商那里收到的控制器产品代码。根据控制器的不同，它可以通过安全密钥（自动显示公司代码）或通过集成的Wibu SD卡进行保护。

5.单击***在线*** ***➔ 登录***并下载应用程序。  
⇒如果匹配的安全密钥和/或有效许可证可用，则可以将应用程序下载到控制器。默认情况下，此时会在控制器目录中自动创建启动应用程序。默认设置在应用程序属性的启动应用程序类别中定义。

6.注销，更改应用程序，然后再次登录。  
⇒提示您执行在线更改。该对话框提供了更新PLC上的引导应用程序的选项。如果安全密钥和许可证匹配，则可以登录。如果不匹配，则收到相应的消息。

---

### 用证书加密​

要求：您有一个项目，其中包含要作为加密启动应用程序下载到控制器的应用程序。在计算机的Windows证书存储中，您具有用于加密应用程序的此控制器的证书。注意：注意：如果要将应用程序下载到其他控制器，则需要为每个控制器使用适当的证书。

  
1.在设备树中选择Application。

2.右键菜单中选择***属性***命令。⇒将打开***属性***对话框。

3.单击***加密***选项卡。

4.在***加密技术***上，选择***使用证书加密***选项。⇒***证书***组已启用。

5.如果表中没有列出任何证书，请单击![](https://resource.helplook.net/docker_production/3648ne/article/WzZ4SGqS/6721c60b68ec6.png)按钮。  
⇒将打开***证书选择***对话框，用于从本地Windows证书存储区选择证书。

6.在下部区域中，选择一个证书，然后通过单击![](https://resource.helplook.net/docker_production/3648ne/article/WzZ4SGqS/6721c61b53012.png)按钮将其添加到上部区域，单击***确定***进行确认。  
⇒证书显示在***加密***对话框的***证书***组中。

7.选择证书，然后单击***应用***或***确定***。  
⇒该证书现在用于加密应用程序。它只能传输到Windows证书存储区中已安装相应密钥的计算机上的控制器上。

---

### 对一个boot application使用签名​

1.在MetaFacture的状态栏中单击![](https://resource.helplook.net/docker_production/3648ne/article/WzZ4SGqS/6721c662371fe.png)以打开***安全栅栏***视图。然后为***数字签名***的用户配置文件选择带有私钥的证书。指令“在用户配置文件中为数字签名配置证书”中描述了该过程。

2.在***用户***选项卡中双击***数字签名***的证书。  
⇒将打开证书对话框。

3.在***详细信息***选项卡上，单击***复制到文件***。⇒***证书导出***向导启动。

4.在***导出私钥***提示中，选择***否，不导出私钥***选项。

5.对于***“导出文件格式”***，选择***DER编码的二进制X.509（.CER）***选项。

6.在下一步中，选择文件名和证书的位置。

7.***完成***最后一步后，将显示一条消息，说明导出成功。

8.成功导出到MetaFacture后，通过双击设备树中的控制器并选择***文件***选项卡进行文件传输来打开设备编辑器。

9.在***运行时***对话框的右侧选择***路径***cert/import。

10.在***主机***对话框的左侧，选择文件系统中保存导出证书并选择证书的路径。

11.点击![](https://resource.helplook.net/docker_production/3648ne/article/WzZ4SGqS/6721c777a1fdb.png)⇒证书将复制到cert /import文件夹。

12.单击***PLC Shell***选项卡。

13.在选项卡的输入行中键入命令cert-import trust，然后按\[ Enter \] 键。请注意，文件名以扩展名.cer;指定。否则证书将无法成功导入。  
⇒证书是在受信任的控制器上创建的。使用此证书，控制器可以测试引导应用程序的完整性。

14.双击状态栏中![](https://resource.helplook.net/docker_production/3648ne/article/WzZ4SGqS/6721c66867d94.png)的打开***安全栅栏***。

15.如果要始终对项目的下载，联机更改和启动应用程序进行加密，请在***用户***选项卡上的***安全级别***组中选择***强制下载***，***联机更改和启动应用程序签名***选项。为此，还必须选择对***下载，在线更改和启动应用程序实施加密***选项。

---

### 加密下载，在线更改和启动应用程序​

要求; 已安装MetaFacture Security Agent安全代理附加产品。

***安全栅栏***视图提供了另一个选项卡：***设备***.这允许为与控制器的加密通信配置证书。在这种情况下，请参阅MetaFacture Security Agent的帮助。

备择方案：

如果您不可用MetaFacture Security Agent安全代理，则可以通过设备编辑器的PLC Shell进行以下操作：

为了将控制器上的证书用于下载，在线更改和启动应用程序的加密，首先必须在控制器上生成这些证书，然后从控制器加载这些证书并将其安装在Windows证书存储区中。

  
要求; 您已连接到控制器。

1.双击设备树中的控制器，打开设备编辑器，然后选择***PLC Shell***选项卡。  
⇒该选项卡显示空白显示窗口。在此下方是命令行。

2.在命令行中键入？，然后按***\[ Enter \]*** 键。  
⇒所有命令都在显示窗口中列出。

3.在命令行中键入以下命令：cert-getapplist。⇒列出所有使用的证书以及有关组件和证书可用性的信息。

4.如果CmpApp组件没有可用的证书，请键入命令cert-genselfsigned 。

5.单击***日志***选项卡，然后单击刷新按钮（![](https://resource.helplook.net/docker_production/3648ne/article/WzZ4SGqS/6721c846d2e09.png)）。  
⇒显示屏显示证书是否成功生成。

6.键入cert-getcertlist，然后按***\[ Enter \]*** 。  
⇒列出了您自己的可用于加密的证书。信息Number和Key usage(s)在下一步中很有用。  
 Number: 在下一步中，将数字指定为参数。  
 Key usage(s): Data encryption意味着它是控制器的证书，用于下载，在线更改和引导应用程序。

7.通过输入命令cert-export own 0导出所需的证书，然后按***\[ Enter \]*** 键。0是具有Key usage(s):的证书Number：Data encryption。⇒显示屏显示证书已导出到cert目录。

8.单击设备编辑器的文件选项卡。

9.在Runtime中，单击对话框右侧的刷新按钮（ ![](https://resource.helplook.net/docker_production/3648ne/article/WzZ4SGqS/6721c87fd2dee.png)）。  
⇒刷新文件和目录列表。

10.打开列表中的***cert***文件夹，然后打开***导出***子文件夹。

11.在***主机***对话框的左侧，打开要在其中加载控制器证书的目录。

12.在对话框的右侧，选择已导出的证书，然后单击![](https://resource.helplook.net/docker_production/3648ne/article/WzZ4SGqS/6721c8c523d0e.png)。⇒证书将复制到所选目录。

13.在文件资源管理器中，转到复制证书的目录，然后双击证书。⇒将打开***证书***对话框，并显示有关此证书的信息。

14.在***常规***选项卡上，单击***安装证书***。⇒启动证书导入向导。

15.在***证书存储***对话框中，对于***证书导入向导***，选择***将所有证书存储在以下存储中***选项，然后选择***控制器证书***文件夹。  
⇒控制器证书将导入到***控制器证书***文件夹中的Windows证书存储中。现在，该证书可用于引导应用程序，下载和在线更改的加密。

16.双击状态栏中![](https://resource.helplook.net/docker_production/3648ne/article/WzZ4SGqS/6721c9464e770.png)的打开***安全栅栏***。

17.如果要始终对项目的下载，联机更改和启动应用程序进行加密，请在***用户***选项卡上的***安全级别***组中选择***强制下载***，***联机更改和启动应用程序签名***选项。

18.打开***项目***选项卡，然后在***boot application的加密，下载和在线更改***区域中双击该应用程序。  
⇒应用程序的属性对话框打开。

19.单击***加密***选项卡，在***加密技术***列表框中选择***使用证书加密***，然后单击![](https://resource.helplook.net/docker_production/3648ne/article/WzZ4SGqS/6721c9ae0eb90.png)。  
如果在***安全栅栏***中选择了***执行下载***，***在线更改和启动应用程序的加密***选项，则已经选择了***使用证书加密***。

20.在证书选择对话框中，从控制器证书文件夹中选择相应的证书，然后单击 。

21.点击***确定***确认并关闭对话框。⇒证书显示在属性对话框中。

22.确认应用程序的属性对话框。⇒该证书显示在***boot application，下载和在线更改的加密***”组的***安全栅栏***的***项目***选项卡上。  
   
boot application，下载和在线更改均已加密。

---

### 删除用于加密boot application，下载和在线更改的证书​

要求; 已安装MetaFacture Security Agent安全代理附加产品。您的计算机上已经安装了带有“加密的应用程序”信息的证书。

  
1.在***安全栅栏***视图的***项目***选项卡上的底视图中，单击应用程序的条目。  
⇒应用程序的***属性***对话框打开，并带有***加密***选项卡。

2.对于***加密技术***，选择***使用证书加密***。 在***证书***组中，单击![](https://resource.helplook.net/docker_production/3648ne/article/WzZ4SGqS/6721ca65c10ab.png) 。

3.在***证书选择***对话框中，如上所述删除证书。

4.点击***确定***并关闭***证书选择***对话框。⇒该证书不再显示在***属性***对话框中。