通过http url 301嵌入的资源永久重定向到https

时间:2015-08-01 03:03:59

标签: html linux ssl nginx https

现在我有一个网站,在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

问题

所以我想知道:

  1. 当我在页面中嵌入301重定向的http资源时会发生什么?
  2. 重定向后?资源是否应该在加密下传输?
  3. 在这种情况下是否安全?或者可能还有其他风险?
  4. 老师,请告诉我,谢谢!

1 个答案:

答案 0 :(得分:1)

如果有一个或多个资源加载了HTTP,则存在“不安全内容”警告,即使资源被重定向到HTTPS也是如此。这是有道理的,因为如果访问者处于中间人攻击(攻击者修改未加密的资源),攻击者可以通过更改像脚本这样的未加密(HTTP)资源来发送任意代码。

要避免此警告,您必须确保页面中的每个资源都加载了HTTPS:脚本,样式表,图像,字体等。对于Wordpress,请确保您的网站地址以“https:/”开头/“并确保您在帖子中添加的所有图片都加载了HTTPS。

最好使用301重定向将所有流量重定向到HTTPS,因为您确定所有访问者都使用HTTPS进行浏览(=加密)。但您必须确保HTTPS的质量,否则一些访问者可能无法访问您的网站。

一些附注:您可以将rewrite规则替换为return 301 https://$host$request_uri;,并且我的网站出现了证书错误,请确保包含中间证书。您可以在https://www.ssllabs.com/上查看HTTPS的质量。