# 加密一个应用

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

### 用加密狗加密​

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

1.在设备树中选择Application。

2.右键菜单中选择属性命令。
⇒将打开属性<应用程序名称>对话框。

3.单击加密选项卡。

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

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

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

### 用证书加密​

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

1.在设备树中选择Application。

2.右键菜单中选择属性命令。⇒将打开属性<应用程序名称>对话框。

3.单击加密选项卡。

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

5.如果表中没有列出任何证书，请单击按钮。
⇒将打开证书选择对话框，用于从本地Windows证书存储区选择证书。

6.在下部区域中，选择一个证书，然后通过单击按钮将其添加到上部区域，单击确定进行确认。
⇒证书显示在加密对话框的证书组中。

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

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

1.在MetaFacture的状态栏中单击以打开安全栅栏视图。然后为数字签名的用户配置文件选择带有私钥的证书。指令“在用户配置文件中为数字签名配置证书”中描述了该过程。

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

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

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

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

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

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

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

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

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

11.点击⇒证书将复制到cert /import文件夹。

12.单击PLC Shell选项卡。

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

14.双击状态栏中的打开安全栅栏。

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.单击日志选项卡，然后单击刷新按钮（）。
⇒显示屏显示证书是否成功生成。

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中，单击对话框右侧的刷新按钮（ ）。
⇒刷新文件和目录列表。

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

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

12.在对话框的右侧，选择已导出的证书，然后单击。⇒证书将复制到所选目录。

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

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

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

16.双击状态栏中的打开安全栅栏。

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

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

19.单击加密选项卡，在加密技术列表框中选择使用证书加密，然后单击。
如果在安全栅栏中选择了执行下载，在线更改和启动应用程序的加密选项，则已经选择了使用证书加密。

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

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

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

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

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

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

2.对于加密技术，选择使用证书加密。 在证书组中，单击 。

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

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