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

标签 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. 在这种情况下安全吗?或者可能有其他风险?

各位老师,请告知,谢谢!

最佳答案

如果有一个或多个资源使用 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/

相关文章:

android - android中受信任的CA列表?

ssl - 使用 Let's Encrypt 保护 GitLab 页面得到 404

java - 黑莓网络兼容性

javascript - 网页上的可关闭元素

java - hadoop MaxTemperature示例在带有ubuntu 14.04的VMware上不起作用

iis - Azure可以在云端生成证书吗?

javascript - 使用 javascript 在输入字段中获取选定的下拉值而不是占位符

html - HTML 中 "robots"元标记的用途是什么?

linux - shell map 是否限制 key 格式?

linux - 对于较新的 Linux 内核,刷新进程名称中的数字有什么意义?