一、背景
微信小程序等功能在发送后台请求时一般都会要求证书齐全,否则就会导致请求发送失败。
一般来说,如果中间证书不齐全,在不同设备上表现不一样,一般PC端可能不会有太大问题,仍然认为你的证书可信,但是在移动端就不一定了,因为移动端不一定会把各种中间证书下载下来。
所以我们在服务器就需要保证证件证书齐全,做好配置,避免部分设备因缺失中间正式而发送请求失败或提示安全风险。
二、方法
2.1 如何检查是否中间证书缺失
证书下载下来一般有3个文件:key文件、证书文件、中间链证书文件
服务器启动ssl服务的时候,一般要用到key文件和证书文件,如django:
python manage.py runsslserver 0.0.0.0:8866 --key ./cert/newxianglin.cn.key --certificate ./cert/full_chain_rsa.crt
而证书文件由于下载下来的时候,只是单独我们自己网站的证书,并不包含中间证书,所以会出现中间证书缺失问题。
一般推荐在两个网站检查中间证书是否缺失:
SSL服务器证书安装检查器_OPENSSL工具包_迅通诚信(推荐,一般都成功)
亚数信息-SSL/TLS安全评估报告(不推荐,经常失败,一般端口不是默认端口时,容易失败)
如采用第一个网站的检查工具后,发现果然中间证书缺失:
原来证书链是:DigiCert Global Root CA(内置根证书,所有设备都会内置,非常宝贵)->RapidSSL Global TLS RSA4096 SHA256 2022 CA1(中间根证书,设备不内置)->newxianglin.cn(服务网址)
中间根证书缺失,导致我们的服务网址对于有些设别来说也是不可信任的。
2.2 如何修复缺失的中间证书
可以简单的把所有中间根证书全部下载下来,然后文本拷贝到原来的证书后面就行。
也可以通过一个网站帮助修复:
一般在这里输入证书用编辑器打开后看到的文本,点击获取证书链
弹出来提示可以把文本拷贝到证书文件中,或者在cmd界面下载证书文件:
2.3 如何部署修复后的完整版证书
证书放到服务器key文件同路径下,在服务器上配置即可,如django可以
效果
重启后台服务后,再检查中间证书就齐全的。
标签:文件,修复,证书,中间,key,服务器,缺失 From: https://blog.csdn.net/u010595191/article/details/140912671