nginx 配置HTTPS

nginx配置HTTPS


 说到配置https就必须要先分别了解一下http和https

http和https区别
  1. http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议
  2. http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全
  3. 使用https需要先申请证书
  4. http默认端口是80,https默认端口是443
申请证书(以阿里云申请为例)
  1. 登陆阿里云平台,找到SSL证书管理控制台并进入(每个账户应该可以申请20个免费证书)
  2. 点击购买证书,选择免费型DV SSL,点击立即购买,虽然是0元,但是你也要点击去支付
    在这里插入图片描述
  3. 回到证书控制台,会有一个未签发证书
    在这里插入图片描述
  4. 点击申请,侧边栏会弹出需要你填写的信息,如实填写即可
    在这里插入图片描述
    在这里插入图片描述
  5. 至此,你的证书已经申请完毕,接下来就是静静等待来(用不了多久,快的话就几分钟就OK了)
nginx配置https
  1. 获取证书
    在SSL证书管理控制台找到你申请通过的证书,点击后面的下载,会让你选择不同版本的证书,我们选择nginx
    在这里插入图片描述

  2. 把证书上传至我们的服务器,解压得到两个文件,.pem和.key

  3. 确定自己的nginx是否在安装的时候编译了http_ssl模块,因为在使用ssl的时候我们需要这个模块,所以如果没有请重新编译安装,在安装的时候添加--with-http_ssl_module和--with-openssl=/openssl-1.0.1t 指定编译的源码。详细看这里

  4. 我们使用https默认使用443,打开配置文件最下面有一个监听443的server,把注释打开只需要略加配置就OK了

     server {
            listen       443 ssl;
            server_name  你证书绑定的域名;
    
            ssl_certificate      你解压出来的.pem绝对路径;
            ssl_certificate_key  你解压出来的.key绝对路径;
            ssl_session_cache    shared:SSL:1m;
            ssl_session_timeout  5m;
            ssl_ciphers  HIGH:!aNULL:!MD5;
            ssl_prefer_server_ciphers  on;
    
            location / {
                root   html;
                index  index.html index.htm;
            }
        }
    
  5. 重启nginx,我们就可以愉快的使用https了,注意,我们现在所使用的默认端口是443,切记切记

原文地址:https://www.cnblogs.com/SunArmy/p/11359001.html