奋青和草根,兴趣较多,爱好户外运动和互联网,偶尔拍拍照片。在这里记录一些路上的风景,记录我们在这个迷茫年代里的一些坏想法和恶观点。

Nginx下强制使用HTTPS

如果说2015年是静态博客的发展年,那2016年绝对是https的发展年。去年开始,由于提供免费的SSL证书服务越来越多,全站HTTPS化俨然成为博客界的时尚之举。另一方面Apple强制要求ATS,Google从Chrome56开始,输入密码或者信用卡资料的网站使用HTTPS,将被Chrome浏览器标识为不安全,这已经意味着全站HTTPS时代已经来临。从某种意义上来说,开放的Let's Encrypt免费证书加快推进了国内HTTPS的发展。

前不久看到又拍云支持https服务后,心痒难耐。春节假期刚好空闲在家,于是干脆动手把边走边说全站升级为https。我使用的是Nginx,在升级的过程中,跳转的问题一直没有得到解决,网上的各种教程,更多的只是提醒了HTTP强制HTTPS访问,并没有解决HTTPS下WWW之间的跳转。可能说的不是很清楚,来,我们理一下。

  1. https://www.huaqing.org
  2. http://www.huaqing.org
  3. https://huaqing.org
  4. https://www.huaqing.org

访问边走边说一共会有以上四种形式,但是我最终的目的是将1、2、3种强制跳转到第4种。通过以下两步也可以实现:

STEP1:将HTTP请求强制跳转到HTTPS

server
    {
        listen 80;
        server_name huaqing.org www.huaqing.org;
        return 301 https://www.huaqing.org$request_uri;
        location ~ /.well-known {
            allow all;
        } 
        location ~ /\.
        {
            deny all;
        }
        access_log off;
    }

STEP2:将https://huaqing.org请求跳转到https://www.huaqing.org

server
    {
        listen 443 ssl http2;
        server_name huaqing.org;
        return 301 https://www.huaqing.org$request_uri;     
        ssl_certificate /etc/letsencrypt/live/www.huaqing.org/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/www.huaqing.org/privkey.pem;
        ssl_ciphers "EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
        access_log off;
    }

评论已关闭

© 2017 边走边说@Walking Talking. 由 Typecho 强力驱动. 又拍云 提供分发. 主机托管 Linode.