0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

OpenHarmony开发实例:【配置应用签名信息】

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-04-22 16:52 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

使用真机设备运行和调试OpenHarmony应用前,需要对应用进行签名才能正常运行。该指导用于OpenHarmony应用的签名配置。配置应用签名信息的流程如下图所示。

zh-cn_image_0000001113808114

生成密钥和证书请求文件

OpenHarmony应用通过数字证书(.cer文件)和Profile文件(.p7b文件)来保证应用的完整性,需要通过DevEco Studio来生成密钥文件(.p12文件)和证书请求文件(.csr文件)。同时,也可以使用命令行工具的方式来生成密钥文件和证书请求文件。

使用DevEco Studio生成密钥和证书请求文件

  1. 在主菜单栏点击Build > Generate Keyand CSR

    说明

    如果本地已有对应的密钥,无需新生成密钥,可以在Generate Key界面中点击下方的Skip跳过密钥生成过程,直接使用已有密钥生成证书请求文件。

  2. Key Store File中,可以点击Choose Existing选择已有的密钥库文件(存储有密钥的.p12文件);如果没有密钥库文件,点击New进行创建。下面以新创建密钥库文件为例进行说明。
    img

  3. Create Key Store窗口中,填写密钥库信息后,点击 OK

    • Key Store File :选择密钥库文件存储路径。
    • Password :设置密钥库密码,必须由大写字母、小写字母、数字和特殊符号中的两种以上字符的组合,长度至少为8位。请记住该密码,后续签名配置需要使用。
    • Confirm Password :再次输入密钥库密码。

    img

  4. Generate Key界面中,继续填写密钥信息后,点击 Next

    • Alias :密钥的别名信息,用于标识密钥名称。请记住该别名,后续签名配置需要使用。
    • Password :密钥对应的密码,与密钥库密码保持一致,无需手动输入。
    • Validity :证书有效期,建议设置为25年及以上,覆盖应用的完整生命周期。
    • Certificate :输入证书基本信息,如组织、城市或地区、国家码等。

    img

  5. Generate CSR界面,选择密钥和设置CSR文件存储路径。
    img

  6. 点击OK按钮,创建CSR文件成功,可以在存储路径下获取生成的密钥库文件(.p12)和证书请求文件(.csr)。
    img

使用命令行工具生成证书请求文件

使用Open JDK携带的Keytool工具生成证书请求文件。

  1. 使用管理员身份运行命令行工具。
    img

  2. 切换到keytool工具所在路径,实际路径请根据DevEco Studio安装目录进行修改。
    img[]()

  3. 执行如下命令,生成公私钥文件。例如,生成的密钥库名称为ide_demo_app.p12,以存储到D盘根目录下为例

    keytool -genkeypair -alias "ide_demo_app" -keyalg EC -sigalg SHA256withECDSA -dname "C=CN,O=HUAWEI,OU=HUAWEI IDE,CN=ide_demo_app"  -keystore d:idedemokey.p12 -storetype pkcs12 -validity 9125 -storepass 123456Abc -keypass 123456Abc
    

    生成公私钥文件的参数说明如下:

    说明

    请记录下alias、storepass和keypass的值,在后续[配置签名信息]操作会使用到。

    • alias :密钥的别名信息,用于标识密钥名称。
    • sigalg :签名算法,固定为 SHA256withECDSA
    • dname :按照操作界面提示进行输入。
      • C:国家/地区代码,如CN。
      • O:组织名称,如HUAWEI。
      • OU:组织单位名称,如HUAWEI IDE。
      • CN:名字与姓氏,建议与别名一致。
    • validity :证书有效期,建议设置为9125(25年)。
    • storepass :设置密钥库密码,必须由大写字母、小写字母、数字和特殊符号中的两种以上字符的组合,长度至少为8位。请记住该密码,后续签名配置需要使用。
    • keypass :设置密钥的密码,请与storepass保持一致。
  4. 执行如下命令,执行后需要输入storepass密码,生成证书请求文件,后缀格式为.csr。

    keytool -certreq -alias "ide_demo_app" -keystore d:idedemokey.p12 -storetype pkcs12 -file d:idedemokey.csr
    

    生成证书请求文件的参数说明如下:

    • alias :与[3]中输入的alias保持一致。
    • file :生成的证书请求文件名称,后缀为.csr。

生成应用证书文件

使用[生成密钥和证书请求文件]中生成的证书请求文件,来生成应用签名所需的数字证书文件。生成方法如下:

进入DevEco Studio安装目录的 Sdktoolchainslib文件夹下(该SDK目录只能是OpenHarmony SDK,配置方法可参考[配置OpenHarmony SDK]),打开命令行工具,执行如下命令(如果keytool命令不能执行,请在系统环境变量中添加JDK的环境变量)。其中,只需要修改输入和输出即可快速生成证书文件,即修改 -infile指定证书请求文件csr文件路径, -outfile指定输出证书文件名及路径。

keytool -gencert -alias "OpenHarmony Application CA" -infile myApplication_ohos.csr -outfile myApplication_ohos.cer -keystore OpenHarmony.p12 -sigalg SHA384withECDSA -storepass 123456 -ext KeyUsage:"critical=digitalSignature" -validity  3650 -rfc

关于该命令的参数说明如下:

  • alias :用于签发证书的CA私钥别名,OpenHarmony社区CA私钥存于OpenHarmony.p12密钥库文件中,该参数不能修改。
  • infile :证书请求(CSR)文件的路径。
  • outfile :输出证书链文件名及路径。
  • keystore :签发证书的CA密钥库路径,OpenHarmony密钥库文件名为OpenHarmony.p12,文件在OpenHarmony SDK中 Sdktoolchainslib路径下,该参数不能修改。请注意,该OpenHarmony.p12文件并不是[生成密钥和证书请求文件]中生成的.p12文件。
  • sigalg :证书签名算法,该参数不能修改。
  • storepass :密钥库密码,密码为123456,该参数不能修改。
  • ext :证书扩展项,该参数不能修改。
  • validity :证书有效期,自定义天数。
  • rfc :输出文件格式指定,该参数不能修改。

生成应用Profile文件

鸿蒙开发指导文档:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

搜狗高速浏览器截图20240326151450.png

Profile文件包含OpenHarmony应用的包名、数字证书信息、描述应用允许申请的证书权限列表,以及允许应用调试的设备列表(如果应用类型为Release类型,则设备列表为空)等内容,每个应用包中均必须包含一个Profile文件。

进入 Sdktoolchainslib目录下,打开命令行工具,执行如下命令。

java -jar provisionsigtool.jar sign --in UnsgnedReleasedProfileTemplate.json --out myApplication_ohos_Provision.p7b --keystore OpenHarmony.p12 --storepass 123456 --alias "OpenHarmony Application Profile Release" --sigAlg SHA256withECDSA --cert OpenHarmonyProfileRelease.pem --validity 365 --developer-id ohosdeveloper --bundle-name 包名 --permission 受限权限名(可选) --permission 受限权限名(可选) --distribution-certificate myApplication_ohos.cer

关于该命令的参数说明如下:

  • provisionsigtool :Profile文件生成工具,文件在OpenHarmony SDK的 Sdktoolchainslib路径下。
  • in :Profile模板文件所在路径,文件在OpenHarmony SDK中 Sdktoolchainslib路径下,该参数不能修改。
  • out :输出的Profile文件名和路径。
  • keystore :签发证书的密钥库路径,OpenHarmony密钥库文件名为OpenHarmony.p12,文件在OpenHarmony SDK中 Sdktoolchainslib路径下,该参数不能修改。
  • storepass :密钥库密码,密码为123456,该参数不能修改。
  • alias :用于签名Profile私钥别名,OpenHarmony社区CA私钥存于OpenHarmony.p12密钥库文件中,该参数不能修改。
  • sigalg :证书签名算法,该参数不能修改。
  • cert :签名Profile的证书文件路径,文件在OpenHarmony SDK中 Sdktoolchainslib路径下,该参数不能修改。
  • validity :证书有效期,自定义天数。
  • developer-id开发者标识符,自定义一个字符串。
  • bundle-name :填写应用包名。
  • permission :可选字段,如果不需要,则可以不用填写此字段;如果需要添加多个受限权限,则如示例所示重复输入。受限权限列表如下:ohos.permission.READ_CONTACTS、ohos.permission.WRITE_CONTACTS。
  • distribution-certificate :[生成应用证书文件]中生成的证书文件。

配置应用签名信息

在真机设备上调试前,需要使用到制作的私钥(.p12)文件、证书(.cer)文件和Profile(.p7b)文件对调试的模块进行签名。

打开 File > Project Structure ,点击 Project > Signing Configs > debug窗口中,去除勾选“Automatically generate signing”,然后配置指定模块的调试签名信息。

  • Store File :选择密钥库文件,文件后缀为.p12,该文件为[生成密钥和证书请求文件]中生成的.p12文件。
  • Store Password :输入密钥库密码,该密码为[生成密钥和证书请求文件]中填写的密钥库密码保持一致。
  • Key Alias :输入密钥的别名信息,与[生成密钥和证书请求文件]中填写的别名保持一致。
  • Key Password :输入密钥的密码,与 Store Password保持一致。
  • Sign Alg :签名算法,固定为SHA256withECDSA。
  • Profile File :选择[生成应用Profile文件]中生成的Profile文件,文件后缀为.p7b。
  • Certpath File :选择[生成应用证书文件]中生成的数字证书文件,文件后缀为.cer。

zh-cn_image_0000001155643492

设置完签名信息后,点击 OK进行保存,然后可以在工程下的build.gradle中查看签名的配置信息。

zh-cn_image_0000001202722349

默认情况下,DevEco Studio编译hap包的类型为debug类型,如果需要编译release类型的hap包,请打开工程左下角的OhosBuild Variants,设置模块的编译构建类型为release。

zh-cn_image_0000001115066116

编译完成后,OpenHarmony应用的Hap包可以从工程的bulid目录下获取。

zh-cn_image_0000001163918627

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 鸿蒙
    +关注

    关注

    60

    文章

    2859

    浏览量

    45357
  • HarmonyOS
    +关注

    关注

    80

    文章

    2146

    浏览量

    35580
  • OpenHarmony
    +关注

    关注

    31

    文章

    3926

    浏览量

    20723
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    CW32F030C8T6数字签名实战

    数字签名 2.3.1硬件准备 确保 CW32F030C8T6 开发环境已配置完毕,包括必要的开发工具链(如 Keil MDK 或 IAR Embedded Workbench)和
    发表于 11-19 08:03

    触觉智能RK3576开发OpenHarmony开源鸿蒙系统USB控制传输功能示例

    OpenHarmony开源鸿蒙设备与外部USB设备之间的连接管理、数据收发及设备信息交互,支持对USB设备的枚举、配置及数据传输控制,适用于各类USB接口进行设备通信的场景。如A
    的头像 发表于 09-30 16:31 1216次阅读
    触觉智能RK3576<b class='flag-5'>开发</b>板<b class='flag-5'>OpenHarmony</b>开源鸿蒙系统USB控制传输功能示例

    【汇思博SEEK100开发板试用体验】在开发板鸿蒙OS搭建QT开发环境

    项目需求进行一些必要的配置,如应用的名称、版本号、图标等信息。 3. 进行应用签名开发者需要拥有华为开发者账号,并按照华为的
    发表于 08-24 18:34

    【汇思博SEEK100开发板试用体验】3/第一次使用OpenHarmony

    本分享贴,聚焦第一次上手的时候,可能出现的一些问题,希望对其他小伙伴也有帮助。 ​​一、创建首个OpenHarmony工程​​ ​​选择开发范式​​ ​​声明式开发(eTS)​​:主流推荐,高性能
    发表于 08-20 22:21

    【汇思博SEEK100开发板试用体验】开发环境安装配置

    以下文字,基于SEEK100开发板试用经验,详细梳理OpenHarmony开发环境搭建的关键步骤与避坑要点: 一、开发工具部署:DevEco Studio精准安装 ​​核心版本选择​
    发表于 08-20 21:43

    签名证书工具cfssl详解

    CFSSL(CloudFlare's PKI and TLS toolkit)由 CloudFlare 用go语言开发的一个开源工具,用于证书签名、验证和管理。
    的头像 发表于 06-11 16:30 532次阅读
    自<b class='flag-5'>签名</b>证书工具cfssl详解

    贡献 OpenHarmony 库关键配置

    # 贡献 OpenHarmony 库关键配置 #自研框架#ArkUI-X#三方框架#OpenHarmony#HarmonyOS ## 创建第三方库 - 打开 DevEco Studio 创建一个
    发表于 05-28 13:46

    基于小凌派RK2206开发板:OpenHarmony如何使用IoT接口控制UART外设

    1、实验简介本实验将演示如何在小凌派-RK2206开发板上使用IOT库的UART接口,进行UART编程开发。例程将创建一个任务,通过配置UART引脚,实现UART读写操作。例程源代码:https
    的头像 发表于 04-22 14:22 796次阅读
    基于小凌派RK2206<b class='flag-5'>开发</b>板:<b class='flag-5'>OpenHarmony</b>如何使用IoT接口控制UART外设

    鸿蒙北向开发OpenHarmony5.0 DevEco Studio开发工具安装与配置

    本文介绍OpenHarmony5.0 DevEco Studio开发工具安装与配置,鸿蒙北向开发入门必备!由触觉智能Purple Pi OH鸿蒙开发
    的头像 发表于 03-28 18:05 1339次阅读
    鸿蒙北向<b class='flag-5'>开发</b><b class='flag-5'>OpenHarmony</b>5.0 DevEco Studio<b class='flag-5'>开发</b>工具安装与<b class='flag-5'>配置</b>

    【北京迅为】iTOP-RK3568开发板鸿蒙OpenHarmony系统南向驱动开发实操-HDF驱动配置UART

    【北京迅为】iTOP-RK3568开发板鸿蒙OpenHarmony系统南向驱动开发实操-HDF驱动配置UART
    的头像 发表于 03-25 11:02 1290次阅读
    【北京迅为】iTOP-RK3568<b class='flag-5'>开发</b>板鸿蒙<b class='flag-5'>OpenHarmony</b>系统南向驱动<b class='flag-5'>开发</b>实操-HDF驱动<b class='flag-5'>配置</b>UART

    【贝启科技BQ3568HM开源鸿蒙开发板深度试用报告】使用Deveco Studio进行开发

    的文件,修改信息: 然后点击右上角的图标重新运行: 开发板上运行的界面将会刷新: 现在,已经可以通过Deveco Stduio,成功编译运行App程序了,后面就可以参考OpenHarmony应用
    发表于 03-16 11:28

    北京迅为iTOP-RK3568开发OpenHarmony系统南向驱动开发实操-HDF驱动配置LED

    北京迅为iTOP-RK3568开发OpenHarmony系统南向驱动开发实操-HDF驱动配置LED
    的头像 发表于 03-14 14:41 1105次阅读
    北京迅为iTOP-RK3568<b class='flag-5'>开发</b>板<b class='flag-5'>OpenHarmony</b>系统南向驱动<b class='flag-5'>开发</b>实操-HDF驱动<b class='flag-5'>配置</b>LED

    鸿蒙北向开发OpenHarmony4.1 DevEco Studio开发工具安装与配置

    OpenHarmony4.1 DevEco Studio开发工具安装与配置,鸿蒙北向开发入门必备!
    的头像 发表于 02-07 17:35 1346次阅读
    鸿蒙北向<b class='flag-5'>开发</b><b class='flag-5'>OpenHarmony</b>4.1 DevEco Studio<b class='flag-5'>开发</b>工具安装与<b class='flag-5'>配置</b>

    瑞芯微开发板/主板Android系统APK签名文件使用方法,实用干货

    瑞芯微主板/开发板Android系统,APK系统签名文件使用方法
    的头像 发表于 12-26 09:43 1504次阅读
    瑞芯微<b class='flag-5'>开发</b>板/主板Android系统APK<b class='flag-5'>签名</b>文件使用方法,实用干货

    如何选择合适的云服务器 --X 实例购买指南和配置详细说明

    前言   1 x实例介绍   2 购买步骤   2.1 登录华为云官网   2.2 Flexus云服务器X实例页面   2.3 配置服务器   2.4 购买服务器   3 X实例
    的头像 发表于 12-24 17:27 1106次阅读
    如何选择合适的云服务器 --X <b class='flag-5'>实例</b>购买指南和<b class='flag-5'>配置</b>详细说明