Nginx服务器配置SSL证书

前言

        在申请SSL证书时一定要确定好自己的项目部署的环境是什么?是部署在Tomcat?还是Nginx?只有确定了服务器类型,选对了类型你才可以下载到合适的证书。我刚开始配置的时候服务器类型我选的是Tomcat服务器,由于项目是前后端分离的,项目打的为jar包。部署的时候不需要配Tomcat环境,所以我选Tomcat服务器的安全证书配置在springboot项目中导致前端页面被拦截了。配置多次无果之后觉得自己服务器类型选错了,前端需要通过Nginx去访问。所以换服务类型为Nginx,下载Nginx服务器证书。不同服务器的证书是不一样的,不能通用。

       申请好Nginx的安全证书之后就可以开始配置了。你购买证书的时候供应商都会提供帮助手册来协助你安装。具体的帮助手册可在购买证书的网站找到,如果你找不到也可以向客服去要;

注意事项

        按照提供的帮助手册可以解决你大部分问题,这里我就把我遇到的一些帮助手册没提到的问题罗列一下;

        1、配置文件中证书路径的问题

        

ssl_certificate      cert/39_xxxxx.pem;
ssl_certificate_key  cert/3939496_xxxxx.key;

        这两句话是配置证书路径的,"cert/xxxxxxx.pem"和“cert/xxxxxxxxx.key”,这个就是你下载的两个证书文件,cert是你在conf所建的文件夹,当然这个文件夹也可以不建;由于之前这个路径没写合适导致启动Nginx的时候报错,所以注意你的路径。

       2、代理地址的配置

       

proxy_pass http://localhost:8080/;

         配置代理地址时不要加https,因为你项目没有配安全证书,现在所配的是针对Nginx服务器的,所以如果需要配代理地址,不要写“https”

       其余的也没什么需要注意的了,遇到问题了再解决,最后附上自己Nginx配置;

      


#user  nobody;
worker_processes  1;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  xxxx.net.cn;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
		rewrite ^(.*)$ https://$host$1 permanent;   #将所有http请求通过rewrite重定向到https。
        location / {
            root   /usr/local/app/frontend_static_file/abpx;//前端打包文件
			try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }
        
        location /prod-api/{
		proxy_set_header Host $http_host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header REMOTE-HOST $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_pass http://localhost:8080/;//访问后端的地址及端口
	}

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        
    }


    # HTTPS server
    #
    server {
        listen       443 ssl;
        server_name  xxxxx.net.cn;

        ssl_certificate      cert/393946_xxxxxx.pem;
        ssl_certificate_key  cert/393949_xxxxxx.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
                ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
           root   /usr/local/app/frontend_static_file/abpx;//前端打包文件的地址
	       try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }

	 location /prod-api/{
		proxy_set_header Host $http_host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header REMOTE-HOST $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_pass http://localhost:8080/;
	}

    }

}

 

你可能感兴趣的:(服务器)