Nginx服务器开启HTTPS的配置

在2018年,谷歌宣布从7月起,Chrome浏览器的地址栏将把所有HTTP标示为不安全网站,并且对所有的HTTP网站降低SEO权重。这一重大举措无疑是为了加快普及HTTPS,以及代表谷歌正式抛弃了HTTP。除了GOOGLE,国内的百度、360等均公开宣布,对HTTPS网站给予优先收录。
并且现在免费的SSL证书越来越多,网站开启HTTPS访问的门槛也越来越低,个人博客也可以享受到安全的HTTPS通信了。
免费的SSL汇总可以参考另一篇文章。


具体部署

申请好证书,之后下载解压压缩包内Nginx版证书会得到.crt文件和.key文件,将其放在你的指定目录下(建议新建一个证书夹目录来专门存放所有网站的SSL证书),之后开始配置Nginx,新添加一条server规则。

server {
    listen 443;

    server_name szncu.club www.szncu.club;

    #SSL所采用的的协议版本
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;

    #下面是.crt文件路径,需要绝对路径
    ssl_certificate .../fullchain.crt;
    #下面是.key文件路径,需要绝对路径 
    ssl_certificate_key .../privkey.key;

    #优先采取服务器算法
    ssl_prefer_server_ciphers on;

    #定义算法
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;

    #SSL回话时间等配置
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
}

至此,SSL配置就完成了
当然我们可以强制开启HTTPS访问,也就是将所有HTTP访问301重定向到HTTPS上面来,加入以下规则:

if ($scheme = http ) {
        return 301 https://$host$request_uri;
        }

至此开启SSL就圆满完成了

Last modification:May 11th, 2021 at 10:07 pm