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,切记切记