# 安全鉴权模式
微信开放平台的接口通信鉴权体系,使用了公私钥的机制,开发者可在微信开放平台 API安全中设置API密钥,为自身应用配置公钥防止数据篡改,以此来保障开发者应用和微信开放平台交互的安全性。
# 一、 签名与验签介绍
在请求API的过程中,为了保护数据的安全,开发者在应用中使用自己的私钥生成请求的签名,平台会在收到请求后使用应用的公钥进行签名的验证,开发者则使用平台证书中的公钥验证回调的签名,来保证互相请求的真实性和数据的完整性。
# 1.公钥
公钥是指应用公钥,开发者通过平台工具生成公钥信息,并保存在API安全配置中,用于平台进行接口调用时的验签。
# 2.私钥
私钥是指应用私钥,开发者可以通过平台工具生成私钥信息,用于生成请求的签名,请妥善保管好私钥文件,务必自行保障其安全性。
# 3.平台证书
平台证书是指包含微信开放平台公钥信息的证书,开发者在配置应用公钥后由平台生成,用于进行接口回调时的验签。
# 二、 接口内容加密介绍
平台支持对接口的请求内容和响应内容进行 AES256/SM4 加密(资源上传类API暂不支持加密),加密后,在网络上传输的接口报文内容将会由明文内容变为密文内容,可以大幅提升接口内容传输的安全性。 接口内容加密结合加签验签,可以在防止接口传输数据泄露的前提下,同时确认接口传输的内容没有被篡改,开发者可对请求参数先做内容加密,然后对密文进行签名。
# 三、 生成并配置密钥
开发者可根据本文指引,快速完成密钥生成、配置及平台证书获取。
# 1.进入配置页
开发者登录微信开放平台,可在“管理中心 - 应用详情”进行API密钥的配置。
点击“开始配置”后,进入配置页面。
# 2.生成接口内容加密密钥
若开发者需对接口的请求内容进行加密,可在API对称密钥处进行配置,点击“随机生成密钥”后再进行下载,复制生成的密钥至新密钥输入框中,验证无误后点击“确定”,需使用管理员微信扫码验证身份,通过后即可完成对称密钥的上传。
# 3.生成应用私钥和公钥
若开发者需生成请求的签名,可在API非对称密钥处进行配置,点击“随机生成密钥”后再进行下载,复制生成的私钥信息,此信息无需上传,请妥善进行保管。再复制生成的公钥至新密钥输入框中,验证无误后点击“确定”,需使用管理员微信扫码验证身份,通过后即可完成应用公钥的上传。
# 4.获取平台证书
开发者配置完应用公钥后,需下载开放平台证书,用于后续接口回调时的验签操作。在此页面,也可查看对应的API密钥及密钥编号。