nginx配置https服务

nginx安装的时候须要支持:with-http_ssl_module 模块
查看nginx是否支持:/application/nginx/sbin/nginx -V
在这里插入图片描述html

证书生成

免费证书可以使用阿里云申请获取,这里采用本地生成证书来配置nginx

  • 安装openssl工具
    yum install openssl
    yum install openssl-devel
  • 生成证书
    进入证书目录
    cd /application/nginx/conf/cert
    建立本地私有密钥
    openssl genrsa -out ssl.silly.com.key  2048
    按提示输入相关信息就能够
    openssl req -new -key ssl.silly.com.key -out ssl.silly.com.csr
    建立证书crt
    openssl x509 -req -days 1460 -in ssl.silly.com.csr -signkey ssl.silly.com.key -out ssl.silly.com.crt
    建立证书pem
    openssl dhparam -out ssl.silly.com.pem 2048
nginx配置文件

server_name : 未配置的域名,根据实际需求修改web

  • 配置443端口安全

    server {
        listen 443 ssl;
        server_name ssl.silly.com;
        ssl_certificate                  		/application/nginx/conf/cert/ssl.silly.com.crt;
        ssl_certificate_key            			/application/nginx/conf/cert/ssl.silly.com.key;
        #ssl_dhparam                            /application/nginx/conf/cert/ssl.silly.com.pem;
        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;
        }
    }

    因为ssl证书配置的路径比较长,在配置完成后,可采用cat查看文件内容及可检查路径是否配置正确session

    cat /application/nginx/conf/cert/ssl.silly.com.crt;
    cat /application/nginx/conf/cert/ssl.silly.com.key;
    cat /application/nginx/conf/cert/ssl.silly.com.pem;
  • 将http重定向到httpsapp

    server {
        listen 80;
        server_name ssl.silly.com;
        rewrite ^(.*)$ https://$host$1 permanent;
    
        location / {
                return 301 https://ssl.silly.com:443$request_uri;
         }
    }
  • 检查配置文件svg

    /application/nginx/sbin/nginx -t
  • 加载配置文件工具

    /application/nginx/sbin/nginx -s reload
  • 效果展现网站

在这里插入图片描述

后话
  • 443端口配置关于ssl的问题
    在网上不少采用如下方式配置,在检查和加载配置文件的时候会报告警信息,这个跟nginx的版本信息相关,可根据nginx的版本实际信息采起相关的配置。
    server {
        listen 443 ;
      	ssl on;
       ...
    }
  • listen 443 后面未加ssl ,访问页面时,提示该网站没法提供安全连接错误信息