证书和签名

1 证书介绍

证书分为发布证书和调试证书,发布证书和发布 Profile 用于在应用上架时对 APP 进行签名,调试证书和调试 Profile 用于在本地调试时对 HAP 进行签名。

证书的生成和签名结合在一起,请参考下边配置签名中的文档。

2 DevEco配置签名

具体内容请参考DevEco配置文档

3 流水线给应用添加签名

准备申请签名所需文件

准备好申请签名所需3个文件:密钥(.p12文件)、数字证书(.cer文件)、Profile(.p7b文件)。

生成密钥和证书请求文件

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

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

  2. 切换到keytool工具所在路径,路径为DevEco Studio安装目录下的jbr\bin目录。

  3. 执行如下命令,生成公私钥文件。例如,生成的密钥库名称为idedemokey.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:密钥的别名信息,用于标识密钥名称。

    • sigalg:签名算法,固定为SHA256withECDSA

    • dname:按照操作界面提示进行输入。

      • C:国家/地区代码,如CN。

      • O:组织名称,如HUAWEI。

      • OU:组织单位名称,如HUAWEI IDE。

      • CN:名字与姓氏,建议与别名一致。

    • validity:证书有效期,建议设置为9125(25年)。

    • storepass:设置密钥库密码,必须由大写字母、小写字母、数字和特殊符号中的两种以上字符的组合,长度至少为8位。请记住该密码,后续签名配置需要使用。

    • keypass:设置密钥的密码,请与storepass保持一致。

  4. 执行如下命令,执行后需要输入storepass密码,生成密钥证书请求文件

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

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

    • alias:与上一步骤中输入的alias保持一致。

    • file:生成的证书请求文件名称,后缀为.csr。

  5. 申请调试数字证书和Profile文件。

    生成证书请求文件后,在AppGallery Connect中申请、下载调试数字证书和Profile文件,具体请参考申请调试证书和Profile文件

对HAP进行签名

通过hvigor打包生成的HAP不会携带签名信息,如果要在真机设备上运行HAP,需要使用命令行工具对HAP进行签名。

  1. 准备好HAP签名工具hap_sign_tool.jar(在${COMMANDLINE_TOOL_DIR}/command-line-tools/sdk/default/openharmony/toolchains/lib下)。

  2. 使用如下命令对HAP进行签名。详细的签名工具指导请参考Hap包签名工具

    java -jar hap-sign-tool.jar sign-app -keyAlias "key0" -signAlg "SHA256withECDSA" -mode "localSign" -appCertFile "test.cer" -profileFile "test.p7b" -inFile "hap-unsigned.hap" -keystoreFile "test.p12" -outFile "result\hap-signed.hap" -keyPwd "123456" -keystorePwd "123456" -signCode "1"
    

    关于该命令中需要修改的参数说明如下,其余参数不需要修改:

    • keyAlias:密钥别名。

    • appCertFile:申请的调试证书文件,格式为.cer。

    • profileFile:申请的调试Profile文件,格式为.p7b。

    • inFile:通过hvigor打包生成的未携带签名信息的HAP。

    • keystoreFile:密钥库文件,格式为.p12。

    • outFile:经过签名后生成的携带签名信息的HAP。

    • keyPwd:密钥口令。

    • keystorePwd:密钥库口令。

    • signCode:是否开启代码签名,缺省为开启。1表示开启,0表示不开启。从HarmonyOS 5.0.2 Beta1版本开始,需开启代码签名,否则将导致构建出的包无法安装到设备上。

4 权限修改

应用在访问数据或者执行操作时,需要评估该行为是否需要应用具备相关的权限。如果确认需要目标权限,则需要在应用安装包中申请目标权限。

每一个权限的权限等级、授权方式不同,申请权限的方式也不同,具体申请方式见下表。

权限类型

授权方式

操作路径

所有应用可申请

system_grant

声明权限 > 访问接口

所有应用可申请

user_grant

声明权限 > 向用户申请授权 > 访问接口

受限开放权限

system_grant

申请使用受限权限 > 声明权限 > 访问接口

受限开放权限

user_grant

申请使用受限权限 > 声明权限 > 向用户申请授权 > 访问接口

受限权限申请后,需要重新生成证书、重新签名。


原文链接:华为开发者文章


 更多问题可关注:

鸿蒙游戏官方网站:已有游戏移植-鸿蒙游戏-华为开发者联盟

公开课:华为开发者学堂

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值