HarmonyOS 应用通过数字证书和授权文件来保证应用的完整性,在申请数字证书和 Profile 文件前,需要通过 DevEco Studio 来生成私钥(存放在 .p12 文件中)和证书请求文件(.csr 文件)。同时,也可以使用命令行工具的方式来生成密钥和证书请求文件,用于构筑工程流水线。
使用 DevEco Studio 生成证书请求文件
使用 DevEco Studio 生成证书请求文件的方式有以下两种情况:
- 如果还未生成密钥文件,则可以一键生成密钥和证书请求文件。
- 如果已有密钥文件,则可以使用已有密钥生成证书请求文件。
一键生成密钥和证书请求文件
- 在主菜单栏点击 Build > Generate Key。
- 在 Key Store Path 中,可以点击 Choose Existing 选择已有的密钥库文件;如果没有密钥库文件,点击 New 进行创建。下面以新创建密钥库文件为例进行说明。
- 在 Create Key Store 窗口中,填写密钥库信息后,点击 OK。
- Key Store Path:选择密钥库文件存储路径。
- Password:设置密钥库密码,必须由大写字母、小写字母、数字和特殊符号中的两种以上字符的组合,长度至少为 8 位。请记住该密码,后续签名配置需要使用。
- Confirm Password:再次输入密钥库密码。
- 在 Generate Key 界面中,继续填写密钥信息后,点击 Generate Key and CSR。
- Alias:密钥的别名信息,用于标识密钥名称。请记住该别名,后续签名配置需要使用。
- Password:输入密钥对应的密码,密钥密码需要与密钥库密码保持一致。请记住该密码,后续签名配置需要使用。
- Confirm Password:再次输入密钥密码。
- Validity:证书有效期,建议设置为 25 年及以上,覆盖应用的完整生命周期。
- Certificate:输入证书基本信息,如组织、城市或地区、国家码等。
- 在弹出的窗口中,点击 CSR File Path 对应的图标,选择 CSR 文件存储路径。
- 点击 OK 按钮,创建 CSR 文件成功,工具会同时生成密钥文件(.p12)和证书请求文件(.csr)。
使用已有密钥生成证书请求文件
- 在主菜单栏点击 Build > Generate Certificate Request File。
- 在 Generate CSR 界面,填写证书请求文件生成参数,点击 OK。
- key Store Path:点击 Choose Existing 选择已有的密钥库文件,后缀格式为 .p12。
- Key Store Password:输入创建密钥时填写的密钥库密码。
- Key Alias:输入创建密钥时填写的别名信息。
- Key Password:输入创建密钥时填写的密钥密码。
- Certificate Path:点击按钮,选择证书请求文件存储路径和名称。
- 打开证书请求文件存储目录,获取证书请求文件(.csr文件)。
使用命令行工具生成证书请求文件
使用 Open JDK 携带的 Keytool 工具生成证书请求文件。
- 使用管理员身份运行命令行工具。
- 切换到 keytool 工具所在路径,实际路径请根据安装目录进行修改。
- 执行如下命令,生成密钥文件。例如,生成的密钥名称为 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、storepass 和 keypass 的值,后续编译构建生成 HAP和编译构建生成 APP会使用到。
- alias:密钥的别名信息,用于标识密钥名称。
- sigalg:签名算法,固定为 SHA256withECDSA。
- dname
:按照操作界面提示进行输入。
- C:国家/地区代码,如 CN。
- O:组织名称,如 HUAWEI。
- OU:组织单位名称,如 HUAWEI IDE。
- CN:名字与姓氏,建议与别名一致。
- validity:证书有效期,建议设置为 9125(25年)。
- storepass:设置密钥库密码。
- keypass:设置密钥的密码,请与 storepass 保持一致。
- 执行如下命令,执行后需要输入 storepass 密码,生成证书请求文件,后缀格式为 .csr。
keytool -certreq -alias "ide_demo_app" -keystore d:\\idedemokey.p12 -storetype pkcs12 -file d:\\idedemokey.csr
生成证书请求文件的参数说明如下:
- alias:与 3 中输入的 alias 保持一致。
- file:生成的证书请求文件名称,后缀为 .csr。