Django Facebook链接共享问题

Django Facebook链接共享问题,django,facebook,ssl,ssl-certificate,social-networking,Django,Facebook,Ssl,Ssl Certificate,Social Networking,我在我的网站上有一个使用Django Social share的“分享到facebook”链接。问题在于,发布到Facebook的链接没有被删除——图片、描述和标题没有被填充。所有OG元标记都存在且正确,因此我检查了,它显示以下错误: SSL Error Can't validate SSL Certificate. Either it is self-signed (which will cause browser warnings) or it is invalid. Curl Error

我在我的网站上有一个使用Django Social share的“分享到facebook”链接。问题在于,发布到Facebook的链接没有被删除——图片、描述和标题没有被填充。所有OG元标记都存在且正确,因此我检查了,它显示以下错误:

SSL Error
Can't validate SSL Certificate. Either it is self-signed (which will cause browser warnings) or it is invalid.
Curl Error
Curl error: 60 (SSL_CACERT)
该站点的SSL证书完全有效-没有任何错误或警告。我在Apache上使用LetsEncrypt,通过WSGI使用Django应用程序。其他社交网络没有问题

给出此错误的链接之一的示例:


如您所见,如果您访问该页面,则不会出现SSL错误。同样的链接在LinkedIn、Twitter和其他网站上被删除,正如预期的那样,但FB似乎有这个问题。

因此,在我回过头来评论之后,我根据来自的指导找到了解决方案。简而言之,Let's Encrypt不会自动将
SSLCertificateChainFile
包含在它执行的“标准”Apache配置中,因此需要手动添加它。一旦我这么做了,这些链接就开始像预期的那样在Facebook上共享

但是,它似乎只使用
chain.pem
文件作为链文件,而不是包含无关证书的
fullchain.pem
,才能正常工作。在我按以下方式配置Apache、重新启动Apache并运行SSL检查后,它开始工作:

...
SSLCertificateChainFile /etc/letsencrypt/live/mydomain.com/chain.pem
...
现在,SSL证书通过了所有检查并具有“A”评级,并且在所有设备/平台中都受信任,因为包含了正确的链文件:


Google“ssl检查”,在前两个结果中输入您的主机名,检查他们要说什么。没有发现问题。尝试了三种不同的跳棋。正如我提到的,只有Facebook存在此问题-它在所有其他社交网站上都可以正常工作。:“证书在所有web浏览器中都不受信任。您可能需要安装中间/链证书以将其链接到受信任的根证书。”:“链问题:不完整”:TLS证书不受信任-证书未由受信任的机构签名(检查Mozilla的根存储)。如果您从受信任的机构购买证书,您可能只需要安装一个或多个中间证书