今天在做小程序的过程中使用HTTPS请求数据时,遇到安卓机型无法获取到数据,通过一系列的排查,发现是因为ssl证书的问题,后来通过https://www.myssl.cn/tools/check-server-cert.html检查发现缺少中间证书:
原因:因为给客户使用的是宝塔面板,宝塔面板在安装SSL证书时漏掉了中间证书,只安装了根证书和密钥。
方法一:
从SSL证书厂商下载下来的有三个文件
分别为:1_root_bundle.crt、2_app.bajiege.com.crt、3_app.bundle.key
把2_app.bajiege.com.crt通过编辑器复制出来的代码放到宝塔的“证书(PEM格式)”框内,然后再把1_root_bundle.crt文件复制出来的代码放到2_app.bajiege.com.crt的代码下方,把3_app.bajiege.com.key代码放到“密钥(KEY)”框内。
或者直接使用Nginx合并好的证书。
方法二:
从SSL证书厂商下载下来的有三个文件,通过编辑器打开证书文件(1_root_bundle.crt文件不需要打 开),获取出类似以下代码输入到宝塔面板当中。
-----BEGIN CERTIFICATE----- MIIGGzCCBQOgAwIBAgIQSm6VLdqpyN6Z1bVGi7VlxTANBgkqhkiG9w0BAQsFADBE MQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMU R2VvVHJ1c3QgU1NMIENBIC0gRzMwHhcNMTcwMzIwMDAwMDAwWhcNMTgwMzIwMjM1 OTU5WjCBljELMAkGA1UEBhMCQ04xEjAQBgNVBAgMCeS6keWNl+ecgTESMBAGA1UE hkiG9w0BAQsFAAOCAQEAxPrtZSupcB023kuF+niygPhgMc+0r6YyZMvUjpdkZuy+ VrLqRlz4G9YPNFBnt2H/YsnzoCnTRBbCrKHiBZk3OauTVfFxlJa1vckMkIWTv0YF Cv9Et88W1GkEaRzvv1QTkxh0xAmOGgCNeAYwSk6bn8vFYp9Ymt2iAOFg/sJvJwML XW5wOewI+55pKUKiHdaIw93rIA7XxtHbVDf6VHIwmbN70lkc+6kC3wYiX/4U5KJp xvYGPWV01Ww7dbxClHmoJXL24phWkjAzBkp/eqEyBr4HioVfvg1PcWMGnRej5yMK Qf0lnAOYk8YyYV2wXesIboM+kN3eI9O/FD8NViO0pg== -----END CERTIFICATE-----
上传中间证书:
通过修改宝塔面板的虚拟主机配置文件增加了中间证书,在SSLCertificateKeyFile下另起一行,填入:
SSLCertificateChainFile etc/letsencrypt/live/XXXX.com/1_root_bundle.crt
宝塔虚拟主机配置文件:
Apache:/www/server/panel/vhost/apache/XXX.com.conf Nginx :/www/server/panel/vhost/nginx/XXX.com.conf
到此重新请求数据,OK。
此问题解决!
原创文章,作者:管理员,如若转载,请注明出处:http://www.bajiege.com/archives/680.html
评论列表(2条)
请教一下 具体中间证书要怎么加
@QQ游客:Apache:/www/server/panel/vhost/apache/XXX.com.conf
Nginx :/www/server/panel/vhost/nginx/XXX.com.conf
找到对应的站点配置文件,在 SSLCertificateKeyFile下另起一行SSLCertificateChainFile /etc/中间证书所在目录/xx.crt