强制使用https和取消强制https

• 3 分钟阅读 • web

现代浏览器都有了强制网站使用https的习惯,不然就在地址栏上显示红色的不安全标记。网站需要设定https访问,但有时候浏览器强制地址为https也带来很多不便。因此有了下面的方法。

网站强制https访问

server {
        listen       80;
        listen       [::]:80;
        server_name  domain.com;
        return 301 https://$host$request_uri;
}
Strict-Transport-Security: max-age=<expire-time>
Strict-Transport-Security: max-age=<expire-time>; includeSubDomains

expire-time=31536000秒时刚好为一年。

server {
        listen       443 ssl http2;
        listen       [::]:443 ssl http2;
       	server_name  www.qs100371.top qs100371.top;
        root         /usr/share/nginx/html;

        ssl_certificate "/root/ssl/_.qs100371.top.crt";
       	ssl_certificate_key "/root/ssl/_.qs100371.top.key";
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  10m;
        ssl_ciphers PROFILE=SYSTEM;
        ssl_prefer_server_ciphers on;
#      add_header Strict-Transport-Security "max-age=0; includeSubDomains" always;
        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
}

备注:Strict-Transport-Security 标头在通过 HTTP 访问时会被浏览器忽略。只有在网站通过 HTTPS 访问并且没有证书错误时,浏览器才认为网站支持 HTTPS,然后遵守 Strict-Transport-Security 标头。浏览器这样做是因为攻击者可以拦截到站点的 HTTP 连接,然后注入或者删除标头。

浏览器端取消强制https

很多时候又需要访问http链接,浏览器强制使用https也带来了不便。

文章标签: web

上一篇 : winboat: 在linux上无缝运行windows应用
下一篇 : WeChat-Selkies: docker里的微信和QQ
留言
阅读进度 0%