证书有效期和创建密钥时不一致
==============

#### 问题现象

创建密钥时设置有效期25年，而在AGC申请发布证书后却显示有效期是3年，为什么不一致呢？

#### 背景知识

1.  [生成密钥和证书请求文件](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-signing#section462703710326)时需要填写证书的有效期（Validity字段），一般默认25年，覆盖应用/元服务的完整生命周期。密钥文件格式为.p12，如下：
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/c1/v3/9B3wsNPiTduatKPzeytOmA/zh-cn_image_0000002658913857.png?HW-CC-KV=V1&HW-CC-Date=20260709T134332Z&HW-CC-Expire=86400&HW-CC-Sign=3CF67471A8C6EC30CC5256A9D6C1DACE900DD99E83D24383C348D9CAB9480F5D "点击放大")
    
2.  在AGC[申请发布证书](https://developer.huawei.com/consumer/cn/doc/app/agc-help-release-cert-0000002283336729)成功后实名认证开发者的发布证书有效期为3年。[申请调试证书](https://developer.huawei.com/consumer/cn/doc/app/agc-help-debug-cert-0000002283256797)成功后实名认证开发者的调试证书有效期为180天，未实名开发者的调试证书有效期为14天。证书文件格式为.cer。

#### 问题定位

生成密钥时设置的证书有效期25年以上就是避免频繁更新密钥，保证应用能持续运行。而AGC申请的证书最长只有3年，意味着到期后需要更新证书。

#### 分析结论

1.  使用开发工具DevEco Studio或者命令行工具生成的密钥填写的证书有效期是p12文件的有效期，而AGC申请的证书有效期是cer文件的有效期。
2.  p12文件的有效期可以手动设置，建议25年以上是因为密钥是私有的，开发者必须通过p12文件及其对应的csr文件生成cer文件。即使cer文件丢失或者过期，只需使用p12文件在AGC重新申请即可，且更换cer文件不影响在架应用。
3.  AGC申请的cer有效期无法手动设置，依据证书类型，开发者账号是否实名等默认不同的有效期。cer文件是由AGC颁发的数字证书，用于验证应用的身份和签名。通过cer文件，验证应用身份，可以确保应用由合法开发者发布；即：证书设置有效期是用于动态验证应用来源合法。

#### 修改建议

创建密钥时建议设置25年以上的有效期，关注AGC申请的证书有效期时间，到期及时更新。

#### 常见FAQ

Q：证书到期会有通知吗？

A：证书到期前3个月，AGC会发送邮件提醒。也可以主动[查看证书有效期并更换证书](https://developer.huawei.com/consumer/cn/doc/app/agc-help-cert-faq-0000002329508280#section11365113515519)。

Q：在AGC申请发布证书有效期为2028/5/7,实际证书有效期2049/3/16，这是为什么？

A：本地生成密钥和证书文件时，系统默认设置了25年的使用期限；在AGC申请发布证书成功后，实名认证开发者的发布证书有效期为3年。到期后需要在AGC上更新证书。