nginx 实现https部署

一 证书购买

1 阿里云或者腾讯云都可以购买ssl证书,可自行选择

2 下载ssl证书审核通过后,要下载适用与nginx的证书,有两个文件如下图

nginx 实现https部署_第1张图片

3 将下载好的证书放入nginx中,我是在conf目录下创建了cert目录,存放ssl证书

二 nginx环境配置

nginx 是需要支持ssl模块的,如果安装nginx的时候没有安装ssl模块,配置文件修改完成后nginx启动不了,会报错缺少http_ssl_module模块。这个时候就需要安装http_ssl_module模块了。对于已经安装了nginx的,可以只单独安装http_ssl_module模块,方法自行百度吧。我是选择重新安装了一次nginx,这样会避免一些意想不到的问题。详情可以参考下面的链接:

https://www.jianshu.com/p/00a4b1f94634

三 配置nginx

1 配置https访问

修改nginx.conf配置文件 

server {
        listen 443 ssl;
        server_name  你的域名;
        #下面这行是用来配置最大上传文件的,与ssl无关
        client_max_body_size 2048M;
        #配置证书的路径,要与你存放的位置对应,确保能访问到
        ssl_certificate cert/你的ssl证书.pem;
        ssl_certificate_key cert/你的ssl证书.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;
            proxy_pass 代理服务器地址;
        }
      
    }

配置完成后,可以正常https访问

2 配置http访问自动跳转到https

修改nginx.conf配置文件 

server {
        listen 80;
        server_name  你的域名;
        rewrite ^(.*)$ https://$host$1 permanent;
        location / {
            return 301 https://你的域名:443$request_uri;
        }
    }

注意事项:每次修改完nginx配置文件,记得要测试nginx配置文件是否正确  ./nginx -t

你可能感兴趣的:(nginx)