我正在尝试将亚马逊“推荐产品”小部件嵌入到网站中。我们在网站的所有页面上都使用 SSL。
不幸的是,默认情况下,亚马逊小部件是使用简单的 IFrame 嵌入的,尽管 IFrame 的源可以是 https://
,但 IFrame 中的图像和链接始终是 http ://
IFrame 示例代码
<iframe src="https://rcm-uk.amazon.co.uk/e/cm?t=june2k&o=2&p=16&l=st1&mode=books-uk&search=potter&f=ifr&f=ifr"
width="468"
height="336"
border="0"
frameborder="0"
style="border:none"
marginwidth="0"
marginheight="0"
scrolling="no"></iframe>
不用说,这会导致“内容不安全”警告、挂锁损坏等。
到目前为止,我能想出的唯一解决方案是使用服务器获取 IFrame 的内容,解析它并重写所有图像链接以指向本地处理程序,该处理程序又代理图片。这似乎是一种脆弱的方法,需要大量的处理开销。太恶心了。
有没有人有这方面的经验?这里有我想念的方法吗?我可以让亚马逊返回有效的 https://
url 吗?
如果我将图像 url 从 http 更改为 https,我会收到证书不匹配错误 - 图像似乎是从 Akamai CDN 提供的,证书的通用名称不是用于的主机名提供图像。
最佳答案
经过很多的挖掘,我在 Amazon 网站上找到了一个以 SSL 模式运行且没有错误的小部件版本。
查看 IFrame src 后,URL 有一个附加参数 internal=1
。我没有在任何地方看到这个记录,但它似乎告诉小部件从 Amazon 的网络而不是 Akamai 的网络提供图像,并且支持 SSL。
网址应该是这样的:
关于ssl - 亚马逊小部件和 SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3890003/