nginx配置HTTPS
说到配置https就必须要先分别了解一下http和https
http和https区别
- http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议
- http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全
- 使用https需要先申请证书
- http默认端口是80,https默认端口是443
申请证书(以阿里云申请为例)
- 登陆阿里云平台,找到SSL证书管理控制台并进入(每个账户应该可以申请20个免费证书)
- 点击购买证书,选择免费型DV SSL,点击立即购买,虽然是0元,但是你也要点击去支付
- 回到证书控制台,会有一个未签发证书
- 点击申请,侧边栏会弹出需要你填写的信息,如实填写即可
- 至此,你的证书已经申请完毕,接下来就是静静等待来(用不了多久,快的话就几分钟就OK了)
nginx配置https
-
获取证书
在SSL证书管理控制台找到你申请通过的证书,点击后面的下载,会让你选择不同版本的证书,我们选择nginx
-
把证书上传至我们的服务器,解压得到两个文件,.pem和.key
-
确定自己的nginx是否在安装的时候编译了http_ssl模块,因为在使用ssl的时候我们需要这个模块,所以如果没有请重新编译安装,在安装的时候添加--with-http_ssl_module和--with-openssl=/openssl-1.0.1t 指定编译的源码。详细看这里
-
我们使用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; } }
-
重启nginx,我们就可以愉快的使用https了,注意,我们现在所使用的默认端口是443,切记切记