nginx配置ssl证书

一、前言

      相对于http来说,使用ssl证书加密的https更为安全,http传输的数据是明文的,容易被窃听和篡改,而https通过SSL/TLS加密,防止了中间人攻击和数据泄露,保障了通信的机密性和完整性,提供了更高的安全性,但是相对来说http由于不涉及加密解密等过程,通常比HTTPS稍微快一些

二、配置

     需要ssl的公有证书,可以在阿里云上免费申请一个,将证书解压后,放在nginx.conf的同级目录中

      vi /etc/nginx/nginx.conf

server {
        listen       80;
        server_name  dev.xxx.com;
        rewrite ^/(.*)$ https://dev.xxx.com:443/$1 permanent;   #将访问80接口的请求都重定向到443接口

        #location / {           #return的作用和rewrite是一样的,只是两种方式
        #    return 301 https://dev.xxx.com;
        #}
}

server {
        listen       443 ssl;
        server_name  dev.xxx.com;

        ssl_certificate      dev.xxx.com.pem;    #配置公有证书
        ssl_certificate_key  dev.xxx.com.key;

        ssl_session_cache    shared:SSL:1m;    #定义SSL会话缓存,加快SSL握手过程,减少服务器负载
        ssl_session_timeout  5m;              #设置SSL会话的超时时间
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;   #定义Nginx支持的SSL/TLS协议版本。常见的值包括TLSv1、TLSv1.1、TLSv1.2、TLSv1.3
        ssl_ciphers  HIGH:!aNULL:!MD5;   #定义Nginx支持的加密套件。这些加密套件确定了客户端和服务器之间的加密算法
        ssl_prefer_server_ciphers  on;  #设置是否优先使用服务器端指定的加密套件

        location =/ {
            proxy_pass http://dev_web;
        }
        location =/login.html {
            proxy_pass http://dev_web;
        }
        location ~* \.(?:htm|html)$ {
            proxy_pass http://dev_web;
        }
        location ~* \.(?:ico|git|jpg|jpeg|png|bmp|swf|flv|mp4)$ {
            proxy_pass http://dev_web;
        }
        location ~* \.(?:css|js|eot|svg|ttf|woff2|otf|woff)$ {
            proxy_pass http://dev_web;
        }
        location / {
            proxy_set_header x-for $http_x_forwarded_for;
            proxy_set_header X-Forwaided-Proto $scheme;
            proxy_set_header Host              $host:$server_port;
            proxy_set_header X-Real-IP         $remote_addr;
            proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Host  $host;
            proxy_buffering off;
            client_max_body_size 200m;
            client_body_buffer_size 50m;
            proxy_pass http://dev_gateway;
        }
}

      重新加载nginx配置

     nginx -s reload

你可能感兴趣的:(nginx,nginx,ssl,运维)