我有一个最近启用了SSL的网站。 在大多数浏览器中,这个工作正常:我们的脚本和样式表使用HTTPS导入,大多数浏览器成功加载页面。 但是,在某些情况下,安全页面将无需页面样式或JavaScript加载。
我们已经在Mac OS X(v10.6.4)上使用Safari 5重复了这一点。我们有另一位用户在Chrome v5上报告了Mac OS X的一致性问题,但我发现Chrome v6没有问题。
Safari向我报告证书是无效的,因为它是由“未知”权威(DigiCert)签署的。 由于Windows中的Safari没有这个问题,这使情况变得复杂。 但是,至less在Safari中,用户可以告诉浏览器始终信任来自站点的内容,并且样式表和脚本将适当地加载。
大多数遇到问题的Chrome用户都有类似的错误签名。 但是,其中一个报告说他的浏览器下载了空白内容的文件。 在这些情况下,Chrome的错误控制台显示文件被解释为正确的types,但是以空白MIMEtypes传输。
网站本身运行Apache,静态内容服务器使用Lighttpd。
这个问题的不一致使得难以确定,所以任何build议,将不胜感激。
这在我们如何在我们的静态内容服务器上设置证书时变成了一个问题。 它被设置在Lighttpd中,使得Safari无法按照authentication链从根证书到中间证书。 我们必须将证书堆叠在单个文件中,并将服务器证书移到pem文件中。 之后,Safari将对我们的静态服务器的请求视为有效,并开始向浏览器再次提供JavaScript和CSS。
你把硬编码引用的文件与完整的url? 例如' http://server/file.cs '
如果浏览器拒绝为安全的网页显示不安全的内容,那么你会得到你描述的问题。
我有与nginx相同的问题。 根据DigiCert和nginx文档,站点证书和中间证书需要并置:
http://www.digicert.com/ssl-certificate-installation-nginx.htm
http://wiki.nginx.org/HttpSslModule
cat intermediate_certificate.crt >> your_domain_name.crt
nginx(在你的情况下,lighttpd)没有像Apache一样的单独的SSLCertificateChainFile指令,而是需要手动“链接”证书。