在将HarmonyOS 6应用接入使用云资源时,应用备案是必不可少的关键环节。无论是华为应用市场,还是其他需要验证应用身份的云服务平台,通常都会要求开发者提供从应用证书中提取的公钥证书指纹(MD5/SHA1)​ 信息。这份指南将清晰解析证书的类型、指纹的区别,并提供在不同操作系统下的提取方法,帮助你高效完成应用备案。

一、核心概念:发布证书、公钥与指纹

在应用备案的上下文中,你需要理解以下几个核心概念:

  1. 发布证书 (Release Certificate): 这是你完成应用签名后,由应用分发平台(如AppGallery Connect)为你应用颁发的数字证书。它以 .cer格式文件提供。备案时所需的信息必须从发布证书中获取,调试证书不可用于此目的。

  2. 公钥 (Public Key): 包含在证书文件内,与你的私钥配对。用于验证应用签名的合法性。备案平台通过公钥来确认提交的应用与签名的应用是同一个。

  3. 证书指纹 (Certificate Fingerprint): 证书的“数字摘要”,是使用特定哈希算法(如 MD5, SHA1, SHA256)对整个证书内容计算得出的唯一字符串,用于唯一标识该证书。常见的是 SHA1 指纹,但部分平台可能要求提供 MD5 指纹。

二、如何获取公钥和指纹?

方法一:在 macOS 上通过“快速查看”获取

此方法适用于需要快速查看 SHA1 指纹(通常可用于备案)和公钥信息的场景。

  1. 准备证书文件: 从 AppGallery Connect 下载你的 .cer发布证书。

  2. 处理证书文件(重要步骤)

    • 用“文本编辑”或其他纯文本编辑器打开 .cer文件。

    • 你可能会看到多段以 -----BEGIN CERTIFICATE-----开头和 -----END CERTIFICATE-----结尾的文本块。这些分别是“根证书”、“中间证书”和你的“叶子证书”。

    • 删除“根证书”和“中间证书”对应的文本块,仅保留“叶子证书”​ 的完整文本块(从 -----BEGIN CERTIFICATE----------END CERTIFICATE-----)。

    • 保存并关闭文件。

  3. 快速查看

    • 在 Finder 中找到处理后的 .cer文件,单击使其处于选中状态

    • 按下键盘的空格键,启动“快速查看”功能。

    • 在弹出的预览窗口中,你将看到证书的详细信息,包括MD5、SHA1、SHA256指纹以及公钥信息

注意: 经过“删除根/中间证书”处理后,从相同 .csr文件生成的 .cer证书,其公钥一致,但指纹会发生变化。如果备案平台校验的是原始完整证书的指纹,此方法获取的指纹将无效,请使用方法二。

方法二:使用 OpenSSL 命令获取(通用,推荐)

此方法适用于所有操作系统(macOS, Windows, Linux),可精确获取指定算法的指纹,并且结果与平台要求完全一致。

  1. 准备工具: 确保你的系统已安装 OpenSSL。

  2. 执行命令

    • 打开终端(macOS/Linux)或命令提示符/PowerShell(Windows)。

    • 使用 cd命令切换到存放 .cer证书文件的目录。

    • 获取 MD5 指纹

      openssl x509 -fingerprint -md5 -noout -in 你的证书文件名.cer

      输出示例:MD5 Fingerprint=55:9F:F7:XX:XX:XX:XX:XX:XX:XX:XX:9A:3A:08:8E

    • 获取 SHA1 指纹

      openssl x509 -fingerprint -sha1 -noout -in 你的证书文件名.cer

      输出示例:SHA1 Fingerprint=15:3E:C8:XX:XX:XX:XX:XX:XX:XX:XX:DF:46:F1:53:AF:84:C9:BF:D0:61

    • 获取公钥

      openssl x509 -pubkey -noout -in 你的证书文件名.cer

      输出将以 -----BEGIN PUBLIC KEY-----开头,包含完整的公钥字符串。

三、常见问题与行业实践

  1. 备案应该用 SHA1 指纹还是 MD5 指纹?

    • 大多数云服务平台和第三方服务(如微信开放平台、部分推送服务)直接接受 SHA1 指纹进行备案。这是最常见和推荐的做法。

    • 如果接入方明确要求提供 MD5 指纹,则需使用上述 OpenSSL 命令提取。

  2. 多个应用共用一个发布证书,备案信息如何填写?

    • 如果多个应用使用相同的发布证书进行签名,那么它们备案所需的公钥和所有指纹(MD5, SHA1, SHA256)将完全一样

    • 区分不同应用的唯一标识是应用包名(Bundle Name)。备案时确保包名准确无误。

  3. 证书过期后重新生成,是否需要重新备案?

    • 强烈建议重新备案或更新备案信息。

    • 如果使用相同的 .csr文件重新生成证书,公钥会保持一致,但指纹会变化

    • 如果使用了新的 .csr文件生成证书,公钥和指纹都会变化

    • 为确保服务连续性,更换证书后应及时在备案平台更新证书信息。

  4. 调试证书可以用于备案吗?

    • 绝对不可以。​ 备案必须使用从应用市场(如 AppGallery Connect)获得的正式发布证书。调试证书仅用于开发阶段本地测试。

四、总结

为HarmonyOS应用完成云端备案,核心是从正确的发布证书(.cer)中提取正确的信息

关键动作

操作方法

注意事项

获取证书

从 AppGallery Connect 下载发布证书(.cer)。

确保是发布证书,非调试证书。

提取指纹

使用 OpenSSL 命令(通用且准确)。

优先提供 SHA1 指纹,若明确要求则提供 MD5 指纹。

提取公钥

使用 openssl x509 -pubkey命令。

直接从证书文件中提取。

备案提交

提交公钥指纹应用包名

多应用共用证书时,公钥和指纹相同,包名不同。

遵循本指南,你可以准确、高效地获取备案所需信息,确保你的应用顺利接入各类云服务。

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任。

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐