现在我有一个网站,运行在 ubuntu 和 nginx 上。
http://www.huangwenchao.com.cn
我刚刚在上面安装了 SSL 证书:
server {
listen 80;
server_name www.huangwenchao.com.cn huangwenchao.com.cn;
rewrite ^/(.*)$ https://www.huangwenchao.com.cn/$1 permanent;
}
server {
listen 443;
root /var/www/huangwenchao;
index index.php index.html index.htm;
server_name www.huangwenchao.com.cn huangwenchao.com.cn;
ssl on;
ssl_certificate /home/ubuntu/ssl/mydomain.crt;
ssl_certificate_key /home/ubuntu/ssl/mydomain.ssl.key;
}
这意味着当我从这个域请求 http 时,它被 301 永久重定向到 https。
一开始,浏览器(chrome)告诉页面有一些不安全的图像、视频和脚本,如下所示:
https://www.huangwenchao.com.cn/2013/11/427-3032.html
这里的一些资源指向我自己的站点,比如一些带链接的图片:
http://www.huangwenchao.com.cn/wp-content/uploads/2015/01/tortoisegit-diff.jpg
在此页面中:https://www.huangwenchao.com.cn/2015/01/git-patch.html
问题
所以我想知道:
- 当我在页面中嵌入 301 重定向的 http 资源时会发生什么?
- 重定向后?资源传输是否应该加密?
- 在这种情况下安全吗?或者可能有其他风险?
各位老师,请告知,谢谢!
最佳答案
如果有一个或多个资源使用 HTTP 加载,则会出现“不安全内容”警告,即使这些资源被重定向到 HTTPS。这是有道理的,因为如果访问者受到中间人攻击(攻击者修改未加密的资源),攻击者可以通过像脚本一样更改未加密的 (HTTP) 资源来发送任意代码。
为避免此警告,您必须确保页面中的每个资源都使用 HTTPS 加载:脚本、样式表、图像、字体等。对于 Wordpress,请确保您的网站地址以“https://” 并确保您在帖子中添加的所有图片都使用 HTTPS 加载。
像您一样使用 301 重定向将所有流量重定向到 HTTPS 是个好主意,因为您确定所有访问者都使用 HTTPS(=加密)浏览。但是您必须确定 HTTPS 的质量,否则某些访问者可能无法访问您的网站。
一些旁注:您可以将 rewrite
规则替换为 return 301 https://$host$request_uri;
我在您的网站上遇到证书错误,是确保包含中间证书。您可以在 https://www.ssllabs.com/ 上检查 HTTPS 的质量.
关于html - 通过 301 永久重定向到 https 的 http url 嵌入资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31757773/