ssl证书其实本站有很多相关的文章,但是没有针对ssl证书做过专门的说明,最近发现,还是有很多同学,困扰在这个地方;所以特整理一些有用的知识放在这里。


如何认定自己有证书问题:

  • 开发工具内–项目内–开启不检验域名
  • 可以获取数据
  • 关闭则不可以获取数据
  • 在这时,可以查看报错信息,其中包含证书、tls版本等出错的信息,以此来判断自己是哪方面的问题

目前发现的可能由ssl证书问题导致的问题:

1:上传:无法上传upload

2:登录:无法登录

3:打开文件:使用打开文件的api(wx.openDocument)无法打开文件,已经确认使用打开文件的api时,使用网络地址的文件地址时必须使用符合规范的https;

4:请求网络:使用request无法请求网络;

可能出现的相关错误:
errMsg: “request: fail ssl hand shake error”
正在尝试连接一个错误的证书或者假装的地址
此服务器的证书无效你使用的是自签的证书
tsl需支持1.2以上

目前提供免费证书的云:(有这样的案例:用阿里云怎么检测都正确,但是就是有问题,后来换了腾讯云搞定)

1:腾讯云:https://www.qcloud.com/product/ssl
2:阿里云:https://common-buy.aliyun.com/?commodityCode=cas#/buy
3:七牛云:https://support.qiniu.com/hc/kb/article/223541

特别说明:一般免费证书只支持单域名,不支持多域名或泛域名;比如xcx.XXXX.xyz域名,你必须为xcx.XXXX.xyz申请证书,而不能为XXXX.xyz申请证书;假如你申请了XXXX.xyz,可能会报域名与证书不匹配的错误:
比如你使用了www.js123.com的域名,就必须为www.js123.com申请证书,而不能为js123.com申请证书;

(检测地址在下方)

请勿使用的ssl证书提供者:https://www.startssl.com/(被苹果惩罚)

ssl证书基础知识:

通常来说,SSL 证书分为三大类,他们的安全性是递增的,当然价格和安全系数成正比。
  • DV (Domain Validation Certificate)   DV 证书适合个人网站使用,申请证书时,CA 只验证域名信息。几分钟之内就能签发。
  • OV ( Organization Validation Certificate)  OV 证书需要认证公司的信息。1-2天签发。
  • EV ( Extended Validation Certificate)   EV 证书的认证最为严格,一般会要求提供纸质材料。签发时间也较久。

常见的ssl证书检测地址:
1:https://www.qcloud.com/product/ssl.html#userDefined10
此链接用户排查域名是否支持tsl1.2,证书与域名是否匹配;必须全绿才算通过;
2:https://www.myssl.cn/tools/check-server-cert.html
此链接主要用于排查是否缺少中间证书,必须全绿才算通过;
3:辅助检测地址:https://www.ssllabs.com/ssltest/index.html

常见问题的可能性:
1:服务器不支持tsl1.0,1.1,1.2,导致提升,tsl需支持1.2;(微信小程序开发时服务器如何支持tls1.2?
2:服务器缺少中间证书,需要安装中间证书;(你是如何解决服务器缺失中间证书(中级证书)问题的?
3:证书不受信任:苹果支持的证书列表:https://support.apple.com/zh-cn/HT204132

如何排除是否还有证书问题:
1:至少使用以上两个检测链接,全部通过;
2:使用微信浏览器打开接口,看是否有数据,微信浏览器内有数据,则可排除是ssl证书问题,证明证书是受微信浏览器认可的;
3:在小程序内打印接口数据,假如可以打印出数据,但是没有渲染,则可排除是证书问题,请查看其它问题;

特别提示:证书问题,似乎无法通过工具内开启不检验域名及tsl版本(同时手机上打开调试)来临时规避!(假如我描述有误,欢迎指出!)
本帖相关帖:
request:fail错误(含https解决方案)(真机预览问题
https相关系列教程:http://www.wxapp-union.com/portal.php?mod=list&catid=17
微信小程序真机预览跟本地不同的问题



如果本帖,没有解决你的问题,请在这里回复确定问题;

新增可能的原因:
问题:

服务器已支持SSL 结果不能访问
为什么连接中断了?
有大神知道原因不?
app 能访问  小程序不能访问
在真机上访问 错误是这样的 fail ssl hand shake error
失败的手握手错误
服务器补丁
因为 接口 谷歌浏览器不能访问 只是要是webkit内核的都不能访问,我去查了查 结果是补丁引起的 最后把那个补丁干掉了 就可以访问了

新增讨论:
6.5.5 的wx.request 支持StartSSL证书吗
在测试小程序的工作中,我的微信版本是6.5.7 ,后台服务器用的是StartSSL免费证书,可以正常请求。我同事的微信版本是6.5.5,向后台请求时,却提示服务器的证书有问题。请问一下这是版本问题吗?(又拿了一个6.5.5 版本的手机测试,还是同样的问题)
答:天下雪

StartSSL、Wosign沃通证书,据我所知,这两家受到了一些主流浏览器的惩罚;所以不建议使用