nginx https证书配置
一 前言
此文档针对于nginx配置反向代理使用https证书方法
nginx作为反向代理服务器,将证书配置于nginx服务器上,与后端服务器采用http连接,前端采用https安全链接
二 配置步骤
1. 依赖:
nginx安装完成,并且80,443端口开放
2. 下载证书
在nginx目录下创建cert目录,下载证书至cert目录并解压
mkdir /etc/nginx/cert
cd /etc/nginx/cert
##下载证书至此
unzip 214033975830630.zip
3. 修改nginx配置文件
默认为/etc/nginx/nginx.conf,本文为vim /etc/nginx/include/123.conf
将其修改为 (以下属性中ssl开头的属性与证书配置有直接关系,其它属性请结合自己的实际情况复制或调整) :
server {
listen 443;
listen 80;
server_name 123.hidc.com;
ssl on;
set $mylight "";
if ($http_accept_encoding ~* gzip) {
set $mylight "gzip";
}
root html;
index index.html index.htm;
ssl_certificate cert/214033975830630.pem;
ssl_certificate_key cert/214033975830630.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
#root html;
#index index.html index.htm;
gzip on;
gzip_types text/plain application/x-javascript application/javascript text/css application/xml application/json;
proxy_next_upstream http_502 http_504 error timeout invalid_header;
#proxy_cache cache_one;
#proxy_cache_valid 200 304 12h;
#proxy_cache_key $host$uri$is_args$args;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://webgis_server_cluster_https;
#expires 1d;
}
}
三 验证
重启nginx服务 /etc/init.d/nginx restart
打开浏览器访问https://123.hidc.com
如下图所示即可
四 配置nginx 同时支持http和https
同个域名支持 https 和 http 两种方式访问,可以如下配置文件:
server
{
listen 80;
listen 443 ssl; //修改后
server_name liu.test.com;
location /
{
expires 302400s;
proxy_pass http://xxxx/xxxx/;
}
#ssl on; //修改后
ssl_certificate /usr/local/nginx/conf/server.crt;
ssl_certificate_key /usr/local/nginx/conf/server.key;
access_log /usr/local/nginx/xxxx.log log_access;
}
五 强制使用https
若想强制使用https访问,对端口进行判断,然后rewrite即可。
if ($server_port != 443) {
rewrite (.*) https://$host$1 permanent;
}