iOS 和 Android 上的通知 (FCM) 中不显示图像

问题描述 投票:0回答:1

我想要的:将静态图像附加到通知中。该图像已在我的网络服务器上静态提供,并且可以在浏览器中打开。 https://example.org/static/images/test_image.png

我遇到的问题:即使图像已在我的服务器上提供,但通知中却丢失了。如果我尝试使用例如由谷歌托管的图像,那么它就可以工作。

我尝试过的:提供在我的服务器上运行的图像,并确保所有标题都与谷歌设置的方式完全相同。

Ps:我现在实际上解决了这个问题,因为我花了几周的时间才找到解决方案,我想我发布这个问题是为了让我可以回答它以供其他人找到

web push-notification notifications firebase-cloud-messaging web-hosting
1个回答
0
投票

我终于解决了这个问题!

这是一个证书问题。如果一切都在浏览器中运行,怎么会这样呢? 浏览器信任签署我的证书的颁发机构所使用的证书。然而,网络爬虫并不信任这个中间证书!


如果你想看看你是否犯了我犯的同样的错误,那么请访问:

https://www.digicert.com/help/

现在您可以检查您站点的证书了。

如果显示类似:

TLS 证书不受信任 该证书未由受信任的机构签名(根据 Mozilla 的根存储进行检查)。如果您从受信任的机构购买了证书,则可能只需要安装一个或多个中间证书。请联系您的证书提供商以获取针对您的服务器平台执行此操作的帮助。

那么您遇到的问题与我相同,并且很容易解决!


事实证明,问题在于我如何提供证书。 我的证书是由 Let’s Encrypt 颁发的,我还需要在我的证书的钥匙串中提供 Let’s Encrypt 使用的 R3 和 X1 证书。


解决方案是将您的证书与 Let’s Encrypt 的两个证书连接起来。

只需将 Let's Encrypt 证书粘贴到您的证书下方即可:

-----BEGIN CERTIFICATE-----
MIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA/
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
DkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
.........
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
gIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADAACVSDFRFEHELELHELH/
NpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTMSQwIgYDVQQKExtEaWdpdGFsIF
MB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1owDkRTVCBSb290IENBIFgz
BAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhTzELMAkGA1UEBhMCVVMxKTAnBgNV
.....
-----END CERTIFICATE-----

好消息!如果您使用 certbot,那么您根本不必这样做! 只需使用 certbot 自动生成的 fullchain.pem 即可。

只需更改 nginx.conf 中的证书即可:

ssl_certificate       /etc/letsencrypt/live/your.domain.com/fullchain.pem;

我真的希望这对某人有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.