diff --git a/zh-cn/application-dev/quick-start/configuring-openharmony-app-signature.md b/zh-cn/application-dev/quick-start/configuring-openharmony-app-signature.md index a5f9f2811796f18ffc02a57eb6f2433af2b888c8..844c87026687080cc42925fe3a6712ceac06d929 100644 --- a/zh-cn/application-dev/quick-start/configuring-openharmony-app-signature.md +++ b/zh-cn/application-dev/quick-start/configuring-openharmony-app-signature.md @@ -13,7 +13,91 @@ ## 生成密钥和证书请求文件 -OpenHarmony应用通过数字证书(.cer文件)和Profile文件(.p7b文件)来保证应用的完整性,需要通过DevEco Studio来生成密钥文件(.p12文件)和证书请求文件(.csr文件)。同时,也可以使用命令行工具的方式来生成密钥文件和证书请求文件。具体操作请参考[生成密钥和证书请求文件](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/publish_app-0000001053223745#section9752152162813)。 +OpenHarmony应用通过数字证书(.cer文件)和Profile文件(.p7b文件)来保证应用的完整性,需要通过DevEco Studio来生成密钥文件(.p12文件)和证书请求文件(.csr文件)。同时,也可以使用命令行工具的方式来生成密钥文件和证书请求文件。 + +### 使用DevEco Studio生成密钥和证书请求文件 + +1. 在主菜单栏点击**Build > Generate Key** **and CSR**。 + + > ![](public_sys-resources/icon-note.gif)**说明** + > + > 如果本地已有对应的密钥,无需新生成密钥,可以在**Generate Key**界面中点击下方的Skip跳过密钥生成过程,直接使用已有密钥生成证书请求文件。 + +2. 在**Key Store File**中,可以点击**Choose Existing**选择已有的密钥库文件(存储有密钥的.p12文件);如果没有密钥库文件,点击**New**进行创建。下面以新创建密钥库文件为例进行说明。 + + ![img](figures/zh-cn_image_0000002021121901.png) + +3. 在**Create Key Store**窗口中,填写密钥库信息后,点击**OK**。 + + - **Key Store File**:选择密钥库文件存储路径。 + - **Password**:设置密钥库密码,必须由大写字母、小写字母、数字和特殊符号中的两种以上字符的组合,长度至少为8位。请记住该密码,后续签名配置需要使用。 + - **Confirm Password**:再次输入密钥库密码。 + + ![img](figures/zh-cn_image_0000002021121902.png) + +4. 在**Generate Key**界面中,继续填写密钥信息后,点击**Next**。 + + - **Alias**:密钥的别名信息,用于标识密钥名称。请记住该别名,后续签名配置需要使用。 + - **Password**:密钥对应的密码,与密钥库密码保持一致,无需手动输入。 + - **Validity**:证书有效期,建议设置为25年及以上,覆盖应用的完整生命周期。 + - **Certificate**:输入证书基本信息,如组织、城市或地区、国家码等。 + + ![img](figures/zh-cn_image_0000002021121903.png) + +5. 在**Generate CSR**界面,选择密钥和设置CSR文件存储路径。 + + ![img](figures/zh-cn_image_0000002021121904.png) + +6. 点击**OK**按钮,创建CSR文件成功,可以在存储路径下获取生成的密钥库文件(.p12)和证书请求文件(.csr)。 + + ![img](figures/zh-cn_image_0000002021121905.png) + +### 使用命令行工具生成证书请求文件 + +使用Open JDK携带的Keytool工具生成证书请求文件。 + +1. 使用管理员身份运行命令行工具。 + + ![img](figures/zh-cn_image_0000002021121906.png) + +2. 切换到keytool工具所在路径,实际路径请根据DevEco Studio安装目录进行修改。 + + ![img](figures/zh-cn_image_0000002021121907.png) + +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 + ``` + + 生成公私钥文件的参数说明如下: + + > ![](public_sys-resources/icon-note.gif)说明 + > + > 请记录下**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](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/publish_app-0000001053223745#ZH-CN_TOPIC_0000001224804001__la996f2c8ce594df98eaadeacfafdea10)中输入的alias保持一致。 + - **file**:生成的证书请求文件名称,后缀为.csr。 ## 生成应用证书文件 @@ -91,6 +175,7 @@ java -jar provisionsigtool.jar sign --in UnsgnedReleasedProfileTemplate.json --o 在真机设备上调试前,需要使用到制作的私钥(.p12)文件、证书(.cer)文件和Profile(.p7b)文件对调试的模块进行签名。 打开 **File > Project Structure**,点击 **Project > Signing Configs > debug**窗口中,去除勾选“Automatically generate signing”,然后配置指定模块的调试签名信息。 + - **Store File**:选择密钥库文件,文件后缀为.p12,该文件为[生成密钥和证书请求文件](#生成密钥和证书请求文件)中生成的.p12文件。 - **Store Password**:输入密钥库密码,该密码为[生成密钥和证书请求文件](#生成密钥和证书请求文件)中填写的密钥库密码保持一致。 @@ -117,4 +202,4 @@ java -jar provisionsigtool.jar sign --in UnsgnedReleasedProfileTemplate.json --o 编译完成后,OpenHarmony应用的Hap包可以从工程的bulid目录下获取。 -![zh-cn_image_0000001163918627](figures/zh-cn_image_0000001163918627.png) +![zh-cn_image_0000001163918627](figures/zh-cn_image_0000001163918627.png) \ No newline at end of file diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000002021121901.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000002021121901.png new file mode 100644 index 0000000000000000000000000000000000000000..9a84c3f66275c8ea2a50b9ba9ab0ead3842274cc Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000002021121901.png differ diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000002021121902.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000002021121902.png new file mode 100644 index 0000000000000000000000000000000000000000..6bef885f7c487473ca1b329d41c6414735555b42 Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000002021121902.png differ diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000002021121903.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000002021121903.png new file mode 100644 index 0000000000000000000000000000000000000000..ba3923fef0ad89fa38fa170d2680931d1eb1ea55 Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000002021121903.png differ diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000002021121904.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000002021121904.png new file mode 100644 index 0000000000000000000000000000000000000000..9250f90cf1e377c8bb33adf9965436ed7ddbadbf Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000002021121904.png differ diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000002021121905.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000002021121905.png new file mode 100644 index 0000000000000000000000000000000000000000..f278f73fb4cd0dba70cae1835dd7a45d2686038b Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000002021121905.png differ diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000002021121906.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000002021121906.png new file mode 100644 index 0000000000000000000000000000000000000000..61535cb2fe6b4197e95cff8691fe27973c5ecde8 Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000002021121906.png differ diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000002021121907.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000002021121907.png new file mode 100644 index 0000000000000000000000000000000000000000..32771bf5f9639aa8ebdd1922f8088965404674ca Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000002021121907.png differ