未验证 提交 41b65cb8 编写于 作者: J Jerry 提交者: Gitee

加入了外链的“生成密钥和证书请求文件”内容

Signed-off-by:Jerry<czy0538@qq.com>

**注意:由于不知晓社区图片命名规则,新增内容的图片为外链鸿蒙文档中的图片,烦请告知图片编号规则后,我将进行修改,之后再次开启pr**
上级 fa0bea82
......@@ -13,7 +13,89 @@
## 生成密钥和证书请求文件
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**
> **说明**
>
> 如果本地已有对应的密钥,无需新生成密钥,可以在**Generate Key**界面中点击下方的Skip跳过密钥生成过程,直接使用已有密钥生成证书请求文件。
2.**Key Store File**中,可以点击**Choose Existing**选择已有的密钥库文件(存储有密钥的.p12文件);如果没有密钥库文件,点击**New**进行创建。下面以新创建密钥库文件为例进行说明。
![img](https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtyPub/011/111/111/0000000000011111111.20211201152424.89774632707248271916920165792878:50521130074337:2800:4B4D0C82D573C9C974EE33A5BC01E8EB1C16B44249D280B5F53C077CBE4506B4.png?needInitFileName=true?needInitFileName=true)
3.**Create Key Store**窗口中,填写密钥库信息后,点击**OK**
- **Key Store File**:选择密钥库文件存储路径。
- **Password**:设置密钥库密码,必须由大写字母、小写字母、数字和特殊符号中的两种以上字符的组合,长度至少为8位。请记住该密码,后续签名配置需要使用。
- **Confirm Password**:再次输入密钥库密码。
![img](https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtyPub/011/111/111/0000000000011111111.20211201152424.74758270109217071109239127120305:50521130074337:2800:A21BD287B7ECF5CBFEB3A259038A6A547002B6B3162038E5021742D4C70E637F.png?needInitFileName=true?needInitFileName=true)
4.**Generate Key**界面中,继续填写密钥信息后,点击**Next**
- **Alias**:密钥的别名信息,用于标识密钥名称。请记住该别名,后续签名配置需要使用。
- **Password**:密钥对应的密码,与密钥库密码保持一致,无需手动输入。
- **Validity**:证书有效期,建议设置为25年及以上,覆盖应用的完整生命周期。
- **Certificate**:输入证书基本信息,如组织、城市或地区、国家码等。
![img](https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtyPub/011/111/111/0000000000011111111.20211201152424.53457875932104762449119803547265:50521130074337:2800:6415FE3B6AADA1208D895D0D03D3027690558658E141C04A60FBDE69A9276590.png?needInitFileName=true?needInitFileName=true)
5.**Generate CSR**界面,选择密钥和设置CSR文件存储路径。
![img](https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtyPub/011/111/111/0000000000011111111.20211201152424.12552758373647728511894812694013:50521130074337:2800:C7980F211F7885E174B6EF2AB74F8733AF217FB07C448AA952B0E7BA5B287699.png?needInitFileName=true?needInitFileName=true)
6. 点击**OK**按钮,创建CSR文件成功,可以在存储路径下获取生成的密钥库文件(.p12)和证书请求文件(.csr)。
![img](https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtyPub/011/111/111/0000000000011111111.20211201152424.43951501146020723529843147233906:50521130074337:2800:34CFC9DB94B3380E790EEC5BFA06D3EDD4E8F3B419E81F28D0C17688A552C15C.png?needInitFileName=true?needInitFileName=true)
### 使用命令行工具生成证书请求文件
使用Open JDK携带的Keytool工具生成证书请求文件。
1. 使用管理员身份运行命令行工具。
![img](https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtyPub/011/111/111/0000000000011111111.20211201152425.81491974242935802955208878572019:50521130074337:2800:D4D570F005F05A9FE9D18EC6D115F439641247EC9F8E7681D8E5003A54C6AEE2.png?needInitFileName=true?needInitFileName=true)
2. 切换到keytool工具所在路径,实际路径请根据DevEco Studio安装目录进行修改。
![img](https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtyPub/011/111/111/0000000000011111111.20211201152425.69860946437213691853917757684153:50521130074337:2800:67074E4F9C1B0B8B39867E11CB4D78ECA3E7E9BC283138B0031578AF744525D6.png?needInitFileName=true?needInitFileName=true)
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
```
生成公私钥文件的参数说明如下:
> 请记录下**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 +173,7 @@ java -jar provisionsigtool.jar sign --in UnsgnedReleasedProfileTemplate.json --o
在真机设备上调试前,需要使用到制作的私钥(.p12)文件、证书(.cer)文件和Profile(.p7b)文件对调试的模块进行签名。
打开 **File &gt; Project Structure**,点击 **Project &gt; Signing Configs &gt; debug**窗口中,去除勾选“Automatically generate signing”,然后配置指定模块的调试签名信息。
- **Store File**:选择密钥库文件,文件后缀为.p12,该文件为[生成密钥和证书请求文件](#生成密钥和证书请求文件)中生成的.p12文件。
- **Store Password**:输入密钥库密码,该密码为[生成密钥和证书请求文件](#生成密钥和证书请求文件)中填写的密钥库密码保持一致。
......@@ -117,4 +200,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
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册