# 证书管理常见问题
# 1. 功能介绍
你可以点击 这里 查看证书管理功能的介绍信息。
# 2. 常见问题答疑
请注意
使用本功能,请确保 SDK 版本高于以下版本:
- iOS SDK:2.24.4
- Android SDK:2.24.3
# 2.1 如何获取证书?
您可以通过第三方渠道获取或采购证书,可选择下载的证书类型一般包括 Apache、IIS、Nginx 和 Tomcat。请选择下载 Nginx 类型的 SSL 证书。
进入 Nginx 文件夹,您会看到包含后缀为.crt
(证书)和后缀为.key
(私钥)的这两个文件,使用文本编辑器打开文件,您可以看到与下图格式相似的 PEM 格式的证书内容和私钥内容。
PEM格式证书
- 以“-----BEGIN CERTIFICATE-----”开头,以“-----END CERTIFICATE-----”结尾。
- 每行64个字符,最后一行可以不足64个字符。
证书上传要求
- 请将以“-----BEGIN CERTIFICATE-----”开头和以“-----END CERTIFICATE-----”结尾的内容一并上传。
- 每行64个字符,最后一行可以不足64个字符。
请注意
正常的 App 网络请求是无法使用自签证书的,所以不建议您在证书管理中使用自签证书。
# 2.2 我获得的证书是其他格式怎么办?
证书管理功能只支持 PEM 格式的证书,其他格式的证书需要转换成 PEM 格式,建议您通过 OpenSSL 工具进行转换。我们提供了几种比较流行的证书格式转换为 PEM 格式的方法,供您参考。
# DER 转换为 PEM
DER 格式一般出现在Java
平台中
- 证书转换:
openssl x509 -inform der -**in** certificate.cer -**out** certificate.pem
# P7B 转换为 PEM
P7B 格式一般出现在Windows Server
和Tomcat
中
- 证书转换:获取outcertificat.cer里面的-----BEGIN CERTIFICATE-----和-----END CERTIFICATE-----的内容作为证书进行上传。
openssl pkcs7 -print_certs -**in** incertificat.p7b -**out** outcertificate.cer
# PFX 转换为 PEM
PFX 格式一般出现在Windows Server
中
- 证书转换:
openssl pkcs12 -**in** certname.pfx -nokeys -**out** cert.pem
# 2.3 上传证书后,如何验证证书有效?
我们会通过提取证书中的认证域名,有效期与证书类型,与请求的域名进行核验。在您上传证书时,我们也会展示对应的信息,便于您进行二次确认。
# 2.4 小程序内包含多个域名,每个域名都需要上传证书吗?
不需要。
多个域名配置可以不同的证书、也可以同一个证书对应多个域名。未配置证书的域名将不做校验。
# 2.5 如果下载证书失败,证书校验机制是否就失效了?
获取证书和获取小程序详情的 API 并未耦合。理论上来说,如果前者请求失败,后者也应该请求失败,FinClip 小程序 SDK 内部也包含了接口重试机制。
但确实可能存在极端情况:假如小程序详情接口请求成功(用户本地获取到了对应小程序),但证书请求不成功(未能获得域名对应证书)时,小程序内的请求将走默认的 https 请求,不再执行强校验。
如您对安全问题非常关注,建议在小程序内部增加其他判断机制。
# 2.6 更改证书后(比如删除或修改对应域名),多长时间会生效?
在用户下次打开小程序时生效。
# 2.7 如果希望对网络请求进行严格加密,开发者可以如何处理?
证书“强校验”,即:当前小程序中的某些网络请求,必须执行证书加密、在无法执行加密的情况下,不允许用户执行任何业务。
为了实现该目标,我们在小程序的app.json
文件中增加了配置项,开发者可自行执行必须执行强校验的域名(URL),如发生异常情况、导致 SDK 中无证书时,用户将无法继续使用。