简单了解OpenHarmony应用签名用到的四个文件 原创 精华

droidzxy
发布于 2022-1-26 16:02
浏览
4收藏

春节不停更,此文正在参加「星光计划-春节更帖活动」

 

通过DevEco Studio编译的OpenHarmony系统HAP应用,必须签名之后才能在开发板上运行。

 

签名过程大致分五步:

1. 生成密钥文件,即p12文件
2. 生成证书请求文件,即csr文件
3. 生成应用证书文件,即cer文件
4. 生成应用Profile文件,即p7b文件
5. 配置应用签名信息,即使用上述生成的文件为应用配置签名。

 

配置OpenHarmony应用签名的过程不复杂,而且比较容易掌握,所以这里对签名过程不做详细介绍,只介绍期间生成的文件的格式和作用。

 

在此之前,先科普几个知识点,关于加密、解密、公钥、私钥、签名和证书的概念。
加密:
以某种算法改变原有的信息数据,使用户在不解密的情况下无法知道其中的内容。加密分为对称加密和非对称加密技术,公钥和私钥属于非对称加密的范畴。

解密:
对加密文件通过解密算法,转换为可被用户识别的文件的过程。

密钥:
指公钥或私钥。密钥对中的一种密钥加密的数据必定能使用另一种密钥解密。

公钥:
公钥用来给数据加密,用公钥加密的数据只能使用私钥解密。

私钥:
用来解密公钥加密的数据。

摘要:
对需要传输的文本,做一个HASH计算,一般采用SHA1,SHA2来获得。

签名:
使用私钥对需要传输的文本的摘要进行加密,得到的密文即被称为该次传输过程的签名。

证书:
数字证书指CA(电子认证服务)机构发行的一种电子文档,是一串能够表明网络用户身份信息的数字,提供了一种在计算机网络上验证用户身份的方式。例如企业数字证书是由认证机构的私钥对企业公钥进行加密得到的证书。

 

熟悉了这些概念之后,我们继续了解一下p12、csr、cer、p7b文件分别是做什么的。

 

P12文件:

  • 网上介绍:
    p12是密钥文件,一种加密的证书,是公钥加密技术12号标准(Public Key Cryptography Standards #12,PKCS#12)为存储和传输用户或服务器私钥、公钥和证书指定了一个可移植的格式。它是一种二进制格式,这些文件也称为PFX文件。开发人员通 常需要将PFX文件转换为某些不同的格式,如PEM或JKS,以便可以为使用SSL通信的独立Java客户端或WebLogic Server使用。
  • 个人理解:
    p12密钥文件包含了别名、有效期、姓名,组织、国家和城市等信息,它似乎是和开发者相关的,把开发者信息加密保存成一个标识身份的文件,类似个人身份证。

 

CSR文件:

  • 网上介绍:
    CSR是英文Certificate Signing Request的缩写,即证书签名请求。CSR文件是申请SSL证书时所需要的一个数据文件,是证书申请者在申请数字证书时由CSP(加密服务提供者)在生成私钥的同时也生成证书请求文件,证书申请者只要把CSR文件提交给证书颁发机构后,证书颁发机构使用其根证书私钥签名就生成了证书公钥文件,也就是颁发给用户的证书。
  • 个人理解:
    csr文件生成之前,必须要指定p12文件,所以csr文件应该也包含了个人信息,它是证书请求文件,就像是一个人要领结婚证,要了一张申请表,里面填好了个人信息,需要送到民政局审核,信息正确无误了才会发证。

 

CER文件:

  • 网上介绍:
    CER是用于存储数字证书的文件格式,一般是由证书颁发机构提供的用于验证网站真实性的安全文件。数字证书(digital certificate),又叫做公钥证书(public key certificate)或者身份证书(identity certificate),是一种证明公钥拥有者的电子文档,数字证书内容包括公钥、公钥拥有者的身份识别信息(一般称作 subject)和验证本证书内容的发行实体(一般称作发行者 issuer)的数字签名。以.cer后缀名的文件是第三方安全文件对于网页的认证授权,类似于电子签名认证器,用于认证网页的真实性,安装在网页的服务器上,对网站的服务器建立有效的认证规则、协议。
  • 个人理解:
    cer文件是应用的证书文件,前面提交了csr证书请求文件,cer就是发回来的证书文件。OpenHarmony通过SDK中的keytool工具模拟发证机构的职能,执行了校验csr请求文件并输出cer证书的作用。cer文件就比如民政局给领证人发的结婚证。

 

P7B文件:

  • 网上介绍:
    P7B是PKCS#7标准格式文件的后缀,也就是平常所说的证书链文件,它里面保存安全证书,用来对个人或设备做安全认证。例如Web浏览器和电子邮件客户端进行身份验证的各种程序中使用的数字证书或ID文件。

OpenHarmony的p7b文件包含应用的包名、数字证书信息、描述应用允许申请的证书权限列表,以及允许应用调试的设备列表(如果应用类型为Release类型,则设备列表为空)等内容,每个应用包中均必须包含一个Profile文件。

  • 个人理解:
    p7b文件是应用轮廓描述文件,里面还包含一个证书链,在window10上双击打开,会看到3个证书,同时生成的时候还指定了开发者、包名、权限字段,说明这个是应用对设备在安装和运行环境方面有着严格的要求,还指定了包名,就应该是一个应用只能对应一个p7b文件。我觉得这个有点类似证婚人,即使领证了也要公证一下。

 

以上理解,全属个人拙见,如有错误,欢迎批评指正。

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2022-1-26 16:05:21修改
5
收藏 4
回复
举报
1条回复
按时间正序
/
按时间倒序
红叶亦知秋
红叶亦知秋

终于又讲文件的了,感谢分享。

回复
2022-1-27 08:13:42
回复
    相关推荐