codecamp

鸿蒙OS 生成密钥和证书请求文件

HarmonyOS 应用通过数字证书和授权文件来保证应用的完整性,在申请数字证书和 Profile 文件前,需要通过 DevEco Studio 来生成私钥(存放在 .p12 文件中)和证书请求文件(.csr 文件)。同时,也可以使用命令行工具的方式来生成密钥和证书请求文件,用于构筑工程流水线。

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

使用 DevEco Studio 生成证书请求文件的方式有以下两种情况:

一键生成密钥和证书请求文件

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

  1. Key Store Path 中,可以点击 Choose Existing 选择已有的密钥库文件;如果没有密钥库文件,点击 New 进行创建。下面以新创建密钥库文件为例进行说明。

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

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

img

  1. Generate Key 界面中,继续填写密钥信息后,点击 Generate Key and CSR

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

img

  1. 在弹出的窗口中,点击 CSR File Path 对应的img图标,选择 CSR 文件存储路径。

img

  1. 点击 OK 按钮,创建 CSR 文件成功,工具会同时生成密钥文件(.p12)和证书请求文件(.csr)。

img

使用已有密钥生成证书请求文件

  1. 在主菜单栏点击 Build > Generate Certificate Request File

  1. 在 Generate CSR 界面,填写证书请求文件生成参数,点击 OK

  • key Store Path:点击 Choose Existing 选择已有的密钥库文件,后缀格式为 .p12。
  • Key Store Password:输入创建密钥时填写的密钥库密码。
  • Key Alias:输入创建密钥时填写的别名信息。
  • Key Password:输入创建密钥时填写的密钥密码。
  • Certificate Path:点击img按钮,选择证书请求文件存储路径和名称。

img

  1. 打开证书请求文件存储目录,获取证书请求文件(.csr文件)。

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

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

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

img

  1. 切换到 keytool 工具所在路径,实际路径请根据安装目录进行修改。

img

  1. 执行如下命令,生成密钥文件。例如,生成的密钥名称为 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 123456 -keypass 123456

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

说明

请记录 下 alias、storepasskeypass 的值,后续编译构建生成 HAP编译构建生成 APP会使用到。

  • alias:密钥的别名信息,用于标识密钥名称。

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

  • dname

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

  • C:国家/地区代码,如 CN。
  • O:组织名称,如 HUAWEI。
  • OU:组织单位名称,如 HUAWEI IDE。
  • CN:名字与姓氏,建议与别名一致。

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

  • storepass:设置密钥库密码。

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

  1. 执行如下命令,执行后需要输入 storepass 密码,生成证书请求文件,后缀格式为 .csr。

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

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

  • alias:与 3 中输入的 alias 保持一致。
  • file:生成的证书请求文件名称,后缀为 .csr。
鸿蒙OS 编译构建前配置
鸿蒙OS 申请证书和Profile
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

鸿蒙OS 开发

鸿蒙OS 术语

鸿蒙OS Java API参考

鸿蒙OS ohos.aafwk.ability

鸿蒙OS ohos.aafwk.abilityjet.activedata

鸿蒙OS ohos.aafwk.content

鸿蒙OS java.lang

鸿蒙OS java.Util

鸿蒙OS java.Util class

鸿蒙OS ohos.data.dataability

鸿蒙OS ohos.data.dataability class

鸿蒙OS ohos.agp.components

鸿蒙OS ohos.agp.components interface

鸿蒙OS ohos.agp.components class

鸿蒙OS ohos.global.configuration

鸿蒙OS java.io

鸿蒙OS ohos.data.resultset

鸿蒙OS ohos.data.resultset interface

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }