欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Https服务器配置-基于Nginx

程序员文章站 2022-04-30 23:38:19
...

上篇 我们讨论了用阿里免费证书在SpringBoot项目中配置Https服务,实际网站部署中,我们往往有一个前置的Nginx反向代理服务器,因为后端服务可能也不是SpringBoot项目,比如nodejs等。配置在Nginx可以屏蔽后端的具体服务,客户端和Nginx之间通过TSL安全协议通信,Nginx在和后端服务通过一个http代理通信。

 这样的好处有两个:第一是不用考虑后端服务的差异化配置,不管是java还是node还是别的开发的服务,Nginx代理的配置是不用变化的。第二是在 更改配置方便,证书管理和服务分离。

第一步 :申请下载证书

不清楚的可以参考上篇文章。将下载的Nginx版本证书和私钥拷贝到服务器对应目录:

/usr/local/nginx/conf/2974915_iotserver.vip.pem;
/usr/local/nginx/conf/2974915_iotserver.vip.key;

第二步:配置Nginx

Nginx需要编译ssl支持的模块,有关Nginx中模块和升级部署的,可以参考我另一篇文章。
具体配置如下:
nginx.conf文件配置

 	server {
            listen 443 ssl; # managed by Certbot
            server_name iotserver.vip;

            keepalive_timeout   70;
            ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
            ssl_ciphers         AES128-SHA:AES256-SHA:RC4-SHA:DES-CBC3-SHA:RC4-MD5;
            ssl_certificate     /usr/local/nginx/conf/2974915_iotserver.vip.pem;
            ssl_certificate_key /usr/local/nginx/conf/2974915_iotserver.vip.key;
            ssl_session_cache   shared:SSL:10m;
            ssl_session_timeout 10m;

           location / {
                alias   /home/zx/soft/dist/;
                index  index.html index.htm;
            }
            
       		#api/v1后缀的,会代理到本机的java接口服务端口
            location ^~ /api/v1/ {
                proxy_pass http://127.0.0.1:8089;

            }

	}


    server {
        listen     80 ;
        server_name  www.iotserver.vip;
        rewrite ^(.*)$ https://${server_name}$1 permanent;
    }

    server {
        listen 80;
        server_name  iotserver.vip;
        rewrite ^(.*)$ https://${server_name}$1 permanent;
    }

    # another virtual host using mix of IP-, name-, and port-based configuration
    server {
        listen     80 default_server;
        return 500;

        #location /api/v1/file/upload {
          #  default_type text/html;
          #  return 200 "success11";
        #}
    }


配置解释说明:

 首先配置了一个server监听443端口,静态资源会路由到/home/zx/soft/dist/目录,api/v1/后缀的会代理到本机的java接口服务端口。另外配置了两个server用于重定向到https,这样当用户输入的是http是,自动转为https访问。最后一个是,针对其他异常路径80访问直接返回错误信息。这样做就保证了安全同时,增加了用户体验。

Nginx配置参数说明:

 在Nginx1.15之前需要 配置ssl on,之后的版本,只需要在listen之后加ssl即可开启SSL支持。

有关ssl的配置,实际上nginx官网也给出了示例:可以直接复制使用,更多参数配置,可以根据需求查看文档。

Https服务器配置-基于Nginx

第三步:用域名访问

这个和之前一样,验证即可。
Https服务器配置-基于Nginx

相关标签: ssl https