使能KAE加解密

下文介绍在不修改现有业务代码的前提下使能KAE的详细操作步骤。

  1. 修改Java安全配置文件。

    1. 打开“$JAVA_HOME/jre/lib/security/java.security”文件。
      1
      vi $JAVA_HOME/jre/lib/security/java.security
      
    2. “i”进入编辑模式,注释以下内容:
      1
      2
      3
      4
      5
      6
      7
      8
      9
      security.provider.1=sun.security.provider.Sun
      security.provider.2=sun.security.rsa.SunRsaSign
      security.provider.3=sun.security.ec.SunEC
      security.provider.4=com.sun.net.ssl.internal.ssl.Provider
      security.provider.5=com.sun.crypto.provider.SunJCE
      security.provider.6=sun.security.jgss.SunProvider
      security.provider.7=com.sun.security.sasl.Provider
      security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI
      security.provider.9=sun.security.smartcardio.SunPCSC
      
      添加以下内容,以添加KAE Provider,并设置为最高优先级。
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      security.provider.1=org.openeuler.security.openssl.KAEProvider
      security.provider.2=sun.security.provider.Sun
      security.provider.3=sun.security.rsa.SunRsaSign
      security.provider.4=sun.security.ec.SunEC
      security.provider.5=com.sun.net.ssl.internal.ssl.Provider
      security.provider.6=com.sun.crypto.provider.SunJCE
      security.provider.7=sun.security.jgss.SunProvider
      security.provider.8=com.sun.security.sasl.Provider
      security.provider.9=org.jcp.xml.dsig.internal.dom.XMLDSigRI
      security.provider.10=sun.security.smartcardio.SunPCSC
      security.provider.11=sun.security.mscapi.SunMSCAPI
      

      修改后截图如下:

    3. 按“Esc”键退出编辑模式,输入:wq!,按“Enter”键保存并退出文件。

  2. 基于毕昇JDK的KAE provider特性使能KAE加解密。

    1. 配置KAE环境变量。
      1. 打开“/etc/profile”文件。
        1
        vi /etc/profile
        
      2. “i”进入编辑模式,添加以下内容。
        1
        export OPENSSL_ENGINES=/usr/local/lib/engines-1.1
        
      3. 按“Esc”键退出编辑模式,输入:wq!,按“Enter”键保存并退出文件。
      4. 使配置生效。
        1
        source /etc/profile
        
    2. 配置KAE Provider。
      1. 打开“$JAVA_HOME/jre/lib/kaeprovider.conf”文件。
        1
        vi $JAVA_HOME/jre/lib/kaeprovider.conf
        
      2. “i”进入编辑模式,添加以下内容,使能RSA硬件加速。
        1
        2
        3
        4
        kae.rsa=true
        kae.log=true
        kae.rsa.useKaeEngine=true
        kae.libcrypto.useGlobalMode=true
        
      3. “Esc”键退出编辑模式,输入:wq!,按“Enter”键保存并退出文件。

  3. 构建并启动Spring Boot Web服务。

    1. 打开“/home/tomcat-test-01/src/main/resources/application.properties”文件。
      1
      vi /home/tomcat-test-01/src/main/resources/application.properties
      
    2. “i”进入编辑模式,添加以下SSL配置。
      1
      2
      3
      4
      5
      6
      7
      8
      server.port=8443  # 指定端口为8443
      server.ssl.enabled=true  # 使用HTTPS协议
      server.ssl.key-store=classpath:server.p12 # 证书路径
      server.ssl.key-store-type=PKCS12   # 证书类型
      server.ssl.key-store-password=123456    # 配置证书密码
      server.ssl.ciphers=ECDHE-RSA-AES256-GCM-SHA384
      server.ssl.protocol=TLS
      server.ssl.enabled-protocols=TLSv1.2
      
    3. “Esc”键退出编辑模式,输入:wq!,按“Enter”键保存并退出文件。
    4. 构建可执行的JAR文件。
      1
      2
      cd /home/tomcat-test-01
      mvn clean package -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true
      
    5. 启动Spring Boot Web服务。
      1
      java -jar target/tomcat-test-01-0.0.1-SNAPSHOT.jar
      

  4. 验证KAE硬件加速是否使用成功。

    1. 查看KAE日志。
      1
      2
      cd /home/tomcat-test-01
      cat kae.log
      

      如果日志显示KAE已被使用,则表示Tomcat使用KAE硬件加速成功。

    2. 观测KAE硬件队列。
      1
      watch -d cat /sys/class/uacce/hisi_*/available_instances
      

      通过浏览器访问Tomcat服务器的IP地址和端口(HTTPS协议,端口8443),观察此命令的输出是否发生变化。如果发生了变化,表示Tomcat使用了KAE硬件加速资源。

      可以看到,访问IP地址后,有一个硬件队列的可用实例数从256减少到了255。