写了个网站,对接支付宝的支付接口,采用https作支付宝的回调协议,结果支付宝回调时出现:
http: TLS handshake error from 203.209.251.65:3110: remote error: tls: unknown certificate
但是,浏览器访问这个网站,证书是正常的,没有问题。
在网上查找了N久未果后,突然想到在下载证书的时候提示问什么服务器类型,因为是自己写的服务,当时就选择了apache。想是不是跟证书本身有关系,于是我又下载了Nginx服务器类型的证书,部署上去后,果然好用了!
我比较了一下两种证书的区别:apache的crt证书文件里只有网站的公钥,而Nginx的crt证书文件里有两个公钥:网站的和root的(我也不清楚是哪个root,反正是下载证书时一起下载下来的)。
我疑惑的是既然两个证书都是有效的,为什么支付宝只认Nginx的这种呢?