---
title: 如何在Web场景下使用KAE-官方技术文章-鲲鹏社区
description: 指导开发者基于鲲鹏计算平台，使用鲲鹏加速引擎KAE加速OpenSSL提升Web场景下HTTPS处理性能
keywords: Web,KAE,如何在,场景下使用,官方技术文章,鲲鹏社区,环境要求,安装
url: https://www.hikunpeng.com/developer/techArticles/20230906-5?envFlag=1
section: (其他)
---

# 如何在Web场景下使用KAE-官方技术文章-鲲鹏社区

URL: https://www.hikunpeng.com/developer/techArticles/20230906-5?envFlag=1
描述: 指导开发者基于鲲鹏计算平台，使用鲲鹏加速引擎KAE加速OpenSSL提升Web场景下HTTPS处理性能
关键词: Web,KAE,如何在,场景下使用,官方技术文章,鲲鹏社区,环境要求,安装

官方技术文章 [了解详情](https://www.hikunpeng.com/zh/developer/techArticles)

如何在Web场景下使用KAE

如何在Web场景下使用KAE

实战经验

发表于 2023/09/06

0

本节的实操过程需要使用鲲鹏平台，开发者可以使用自备的鲲鹏平台进行学习和体验。

## 环境要求

KAE支持的软硬件环境要求如下：

| 项目 | 类别 | 要求 |
| --- | --- | ---|
| 硬件 | 服务器 | TaiShan服务器（鲲鹏920处理器） |
| 软件 | iBMC | iBMC V365及以上版本 |
| BIOS | BIOS V105及以上版本 |  |
| 操作系统 | （1）CentOS 7.6
  4.14.0-115.el7a.0.1.aarch64 version（2）SUSE 15.1
  4.12.14-195-default.aarch64 version（3）EulerOS 2.8
  4.19.36-vhulk1907.1.0.h410.eulerosv2r8.aarch64 version（4）NeoKylin 7.6
  4.14.0-115.5.1.el7a.06.aarch64 version（5）BCLinux-R7-U6-Server-aarch64
  version（6）Kylin 4.0.2 (juniper)
  4.15.0-70-generic version（7）Kylin release 4.0.2 (SP2)
  4.19.36-vhulk1907.1.0.h403.ky4.aarch64 version（8）UniKylin Linux release
  3(Core) 4.18.0-80.ky3.kb21.hw.aarch64 version（9）Ubuntu 18.04.1 LTS
  4.15.0-29-generic version（10）openEuler 20.03 LTS
  4.19.90-2003.4.0.0036.oe1.aarch64 version（11）openEuler 20.03 LTS-SP1
  4.19.90-2012.4.0.0053.oe1.aarch64 version |  |

为保证KAE能够正常工作，同时可以直观的体验KAE带来的性能提升，本文使用鲲鹏处理器为硬件平台，openEuler为操作系统来测试验证KAE的加速效果，请检查您的安装环境，确保测试环境达到推荐配置要求。

## 安装KAE

安装鲲鹏加速引擎KAE需要执行下面几个关键步骤，安装成功后，通过OpenSSL调用KAE，可以简单验证KAE的性能提升效果。

步骤 1	申请并安装KAE License。

安装鲲鹏加速引擎KAE之前需要先申请并导入相应的License，License安装成功之后，操作系统才能识别到加速器设备。License申请和安装的详细操作可参考《华为服务器iBMC许可证 使用指导 [了解详情](https://support.huawei.com/enterprise/zh/management-software/ibmc-pid-8060757?category=operation-maintenance)》。

（1）获取License。

（2）安装License。

a.	通过浏览器登录服务器的iBMC，依次单击“iBMC管理 > 许可证管理 > 安装”。

b.	重启服务器。

c.	查看操作系统中是否有KAE加速器设备。

```
lspci | grep HPRE
lspci | grep RDE
lspci | grep ZIP
lspci | grep SEC
```

若运行以上命令后没有任何回显信息打印，说明操作系统中没有KAE加速器设备，请检查License是否安装。

步骤 2	编译安装OpenSSL 1.1.1a。

安装前请先确认是否已安装以下组件：

① 已安装与系统版本对应的kernel-devel。可以通过uname -r命令查询当前内核版本号。

② 已安装perl、bzip2。可以通过perl --version，bzip2 --version命令查询是否已安装。

③已安装GCC、make工具，不同GCC版本下呈现出的性能数据存在差异，推荐使用7.4.1及以上版本，make推荐使用3.82及以上版本。可以通过gcc --version，make --version命令查询是否已安装。

④ 已安装automake、autoconf、libtool相关软件。可以通过automake --version，autoconf --version，libtool --version命令查询是否已安装。

（1）获取OpenSSL源码包（OpenSSL为1.1.1a及以上版本），将源码包拷贝到自定义路径下。

获取链接：https://www.openssl.org/source/old/1.1.1/ [了解详情](https://www.openssl.org/source/old/1.1.1/)

（2）解压缩后，在OpenSSL源码目录下，编译安装OpenSSL。

本文使用OpenSSL的默认安装路径“/usr/local”，您也可以通过“./config --prefix”指定安装路径。“-Wl,-rpath”参数用来指定OpenSSL运行时依赖libcrypto、libssl库的路径。

```
./config -Wl,-rpath,/usr/local/lib
make
make install
```

（3）设置环境变量。

如果开发者指定安装路径，则下面命令中的“/usr/local/lib/engines-1.1”应根据实际安装路径进行修改。

```
export OPENSSL_ENGINES=/usr/local/lib/engines-1.1
```

（4）安装后检查。

a.	执行cd命令，进入到“/usr/local/bin”目录下。

b.	查看OpenSSL版本信息。

```
./openssl version
```

显示OpenSSL版本号内容说明安装成功。

步骤 3	安装鲲鹏加速引擎KAE。

KAE的安装方式有RPM包安装、DEB包安装和源码安装3种，本文以RPM包安装方式为例，其他安装方式请参见《鲲鹏加速引擎 开发指南（KAE加解密） [了解详情](https://www.hikunpeng.com/document/detail/zh/kunpengaccel/encryp-decryp/devg-kae/kunpengaccel_16_0002.html)》。

（1）获取RPM安装包kae_1.3.11_openEuler20.03LTS_SP1.zip，将安装包拷贝到自定义路径下。

获取路径：https://gitee.com/kunpengcompute/KAE/releases [了解详情](https://gitee.com/kunpengcompute/KAE/releases)

（2）解压后安装加速驱动软件包。

```
rpm -ivh *.rpm
```

（3）手动加载加速器到内核。

a.	查询已载入内核的uacce驱动模块。

```
lsmod | grep uacce
```

b.	加载uacce、hisi_sec2、hisi_hpre、hisi_rde驱动到内核。

```
modprobe uacce
modprobe hisi_sec2
modprobe hisi_hpre
modprobe hisi_rde
```

c.	再次查询已载入内核的uacce驱动模块。

```
lsmod | grep uacce
```

有以下加载的模块显示则表示加载成功。

```
uacce 36864 3 hisi_sec2,hisi_qm,hisi_hpre,hisi_rde
```

步骤 4	查看KAE加速引擎是否已安装成功。

```
rpm -qa uacce hisi_sec2 hisi_hpre hisi_rde
```

显示如下信息，表明KAE已安装成功。

```
hisi_sec2-1.3.11-1.openEuler20.03LTS_SP1.aarch64
uacce-1.3.11-1.openEuler20.03LTS_SP1.aarch64
hisi_hpre-1.3.11-1.openEuler20.03LTS_SP1.aarch64
hisi_rde-1.3.11-1.openEuler20.03LTS_SP1.aarch64
```

步骤 5	通过OpenSSL调用KAE验证RSA2048算法性能，确认鲲鹏加速引擎KAE是否已生效。

（1）使用加速器前，执行以下命令，并查看执行结果。

```
cd /usr/local/bin/
./openssl speed rsa2048
```

回显信息如下：

```
                 sign    verify    sign/s verify/s 
rsa 2048 bits 0.001381s 0.000035s    724.1  28601.0

```

（2）使用KAE后，执行以下命令，并查看执行结果。

```
./openssl speed -engine kae rsa2048
```

回显信息如下：

```
engine "kae" set.
                 sign    verify   sign/s verify/s
rsa 2048 bits 0.000175s 0.000021s 5730.1 46591.8
```

通过RSA性能命令可以看到指定KAE之后，签名性能从724.1 sign/s提升到5730.1sign/s，RSA的性能得到明显提升。

（3）在测试RSA2048算法性能的过程中，可以打开新的命令行终端，执行以下命令查看KAE资源队列值（默认值为256），数值减少则说明KAE已生效。

```
cat /sys/class/uacce/hisi_hpre-*/attrs/available_instances
```

或者

```
watch -d cat /sys/class/uacce/hisi_hpre-*/attrs/available_instances
```

回显信息中KAE资源队列值从256变为255，说明RSA算法消耗了HPRE加速器一个硬件单元队列，说明KAE已生效。

----结束

## 配置OpenSSL调用KAE

将鲲鹏加速引擎KAE内容写入OpenSSL配置文件openssl.cnf中，以实现KAE的调用。OpenSSL配置文件默认在“/usr/local/ssl/”路径下。

步骤 1	新建OpenSSL配置文件openssl.cnf。

```
vi /home/openssl.cnf
```

步骤 2	按“i”进入编辑模式，将KAE加速器相关内容写入OpenSSL配置文件。

```
openssl_conf=openssl_def
[openssl_def]
engines=engine_section
[engine_section]
kae=kae_section
[kae_section]
engine_id=kae
dynamic_path=/usr/local/lib/engines-1.1/kae.so
default_algorithms=ALL
init=1
```

步骤 3	按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。

步骤 4	在profile文件中配置OpenSSL的环境变量。

（1）打开profile文件。

```
vi /etc/profile
```

（2）按“i”进入编辑模式，添加如下内容。

```
export OPENSSL_CONF=/home/openssl.cnf
```

（3）按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。

步骤 5	使环境变量生效。

```
source /etc/profile
```

----结束

## 测试验证KAE加速效果

通过测试Web场景下RSA2048算法同步和异步性能验证KAE加速效果。

测试RSA2048算法性能有两种方式：同步性能测试和异步性能测试。因为已配置OpenSSL的环境变量，性能测试命令中不需要指定KAE引擎即可调用KAE加速库。

（1）同步性能测试

```
openssl speed -elapsed rsa2048
```

（2）异步性能测试。

```
openssl speed -elapsed -async_jobs 36 rsa2048
```

在测试过程中，同时使用以下两个命令中的任何一个查看KAE资源队列值（默认值为256），数值减少则说明KAE加速生效。

```
cat /sys/class/uacce/hisi_hpre-*/attrs/available_instances
```

或者

```
watch -d cat /sys/class/uacce/hisi_hpre-*/attrs/available_instances
```

回显信息如下，可以看到KAE资源队列值从256变为255，说明RSA算法消耗了HPRE加速器一个硬件单元队列，说明KAE加速生效。

```
255
256
```

本页内容
