Nginx中配置SSL证书

Nginx默认访问使用的是http协议,如果要使用https协议,需要为网站配置SSL证书,因为https是安全的,对传输的数据进行了加密。使用https,必须要有一个域名,并且域名需要备案之后才可以使用。 申请完SSL证书后,会得到两个文件,一个是.crt后缀的文件是证书文件,还有一个是.key文件,是密钥文件。

新增Nginx的SSL模块

要在nginx中配置https,就必须安装ssl模块,也就是:http_ssl_module。

  • 进入到nginx的解压目录:/home/jythons/package/nginx-1.18.0
  • 新增ssl模块(原来的那些模块需要保留)
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--with-http_ssl_module

  • 编译和安装
make
make install

##Nginx配置HTTPS

  • 把ssl证书 *.crt和私钥 *.key 拷贝到/usr/local/nginx/conf 目录中。
  • 新增server监听443端口
#配置上游服务器
upstream tomcats {
        server 192.168.3.26:8080;
        server 192.168.3.27:8080;
        server 192.168.3.28:8080;
}

server {
    listen 443;
    server_name www.tomcats.com;
    
    # 开启ssl
    ssl on;
    # 配置ssl证书
    ssl_certificate 1_www.tomcats.com_bundle.crt;
    # 配置证书密钥
    ssl_certificate_key 1_www.tomcats.com.key;
    
    # ssl会话cache
    ssl_session_cache shared:SSL:1m;
    # ssl会话超时时间
    ssl_session_timeout 5m;
    
    # 配置加密套件,写法遵循openssl标准
    ssl_protocols TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    
    location / {
        proxy_pass http://tomcats/;
        index index.html index.htm;
    }
}