升级 NGINX 从 HTTP 到 HTTPS

陪她去流浪 桃子 2016年08月22日 编辑 阅读次数:3167

年前把服务器升级到了HTTPS,在 Web服务器 NGINX 端所作的配置非常之少。没有写文章记录升级过程。而今天在看文章时了解到 HSTS(HTTP Strict Transport Security) 同时也应该注意到:虽然 HTTP 成功被重定向到 HTTPS 安全连接,但这没有彻底阻止客户端主动发起 HTTP 请求,重定向时 HTTP 请求已经发出去了,而发出去这一过程就会存在中间人攻击。貌似说得不怎么清楚,我目前不是特别关心这个问题,具体的还请参考上面维基百科的说明吧。

之前我在 NGINX 中 从 HTTP 升级到 HTTPS 时的配置文件:

server {
    listen              80;
    server_name         blog.twofei.com;
    return              301 https://$server_name$request_uri;
}

server {
    listen              443 ssl;
    server_name         blog.twofei.com;

    ssl_certificate     cert.crt;
    ssl_certificate_key cert.key;

    # ...
}

但由于 HSTS 的原因,所以还应该在第2个 server 块中(HTTPS那个)中加上下面一句:

# add Strict-Transport-Security to prevent man in the middle attacks
add_header Strict-Transport-Security "max-age=31536000"; 

更多详细请参考以下的链接:

标签:HTTP · nginx · HTTPS