阅读(1666) (4)

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

2020-09-17 11:15:13 更新

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。