zoukankan      html  css  js  c++  java
  • ngx_http_ssl_module模块说明

    ngx_http_ssl_module模块主要用于nginx的https协议。

    配置参数如下:

    Syntax:    ssl on | off;
    Default:    
    ssl off;
    Context:    http, server

    为指定虚拟机启用HTTPS protocol, 建议用listen指令代替

    Syntax:    ssl_buffer_size size;
    Default:    ssl_buffer_size 16k;
    Context:    http, server
    This directive appeared in version 1.5.9.

    设置用于发送数据的缓冲区的大小。

    默认情况下,缓冲区大小为16k,这对应于发送大响应时的最小开销。为了最大程度地缩短到第一个字节的时间,使用较小的值可能是有益的.

    Syntax:    ssl_certificate file;
    Default:    —
    Context:    http, server

    当前虚拟主机使用PEM格式的证书文件

    Syntax:    ssl_certificate_key file;
    Default:    —
    Context:    http, server

    当前虚拟主机上与其证书匹配的私钥文件

    Syntax:    ssl_protocols [SSLv2] [SSLv3] [TLSv1] [TLSv1.1] [TLSv1.2] [TLSv1.3];
    Default:    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    Context:    http, server

    支持ssl协议版本,默认为后三个版本

    Syntax:    ssl_session_cache off | none | [builtin[:size]] [shared:name:size];
    Default:    ssl_session_cache none;
    Context:    http, server

    none: 通知客户端支持ssl session cache,但实际不支持

    builtin[:size]:使用OpenSSL内建缓存,为每worker进程私有

    [shared:name:size]:在各worker之间使用一个共享的缓存

    Syntax:    ssl_session_timeout time;
    Default:    ssl_session_timeout 5m;
    Context:    http, server

    客户端连接可以复用ssl session cache中缓存的有效时长,默认5m

    配置案例:

    server {
      listen 443 ssl;
      server_name www.ywx.com;
      root /vhosts/ssl/htdocs;
      ssl on;
    #新版本中已被"listen 443 ssl;"替代 ssl_certificate
    /etc/nginx/ssl/nginx.crt; ssl_certificate_key /etc/nginx/ssl/nginx.key; ssl_session_cache shared:sslcache:20m; ssl_session_timeout 10m; }

    测试实验

    实验环境

    [root@node1 ~]# uname -r
    3.10.0-957.el7.x86_64
    [root@node1 ~]# cat /etc/redhat-release 
    CentOS Linux release 7.6.1810 (Core) 
    [root@node1 ~]# nginx -V
    nginx version: nginx/1.16.0
    built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) 
    built with OpenSSL 1.0.2k-fips  26 Jan 2017
    TLS SNI support enabled
    configure arguments: --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module
    
    ip: 10.0.0.101

    实验要求:

    可以使用https://10.0.0.101来访问nginx
    注意:该式样需要在使用nginx的ngx_http_ssl_module

    实验步骤:

    1、创建CA和自签名证书

    #1、创建私有CA
    touch /etc/pki/CA/index.txt 
    #生成证书索引数据库文件
    echo 01 > /etc/pki/CA/serial 
    #指定第一个颁发证书的序列号
    #2、CA自签证书
    #生成私钥
    cd /etc/pki/CA/
    (umask 066; openssl genrsa -out private/cakey.pem 2048)
    #生成自签名证书
    openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 3650 -out /etc/pki/CA/cacert.pem
    #3、颁发证书
    #在需要使用证书的主机生成证书请求给web服务器生成私钥
    (umask 066; openssl genrsa -out /data/nginx.key 2048)
    #生成证书申请文件
    openssl req -new -key /data/nginx.key -out /data/nginx.csr
    #将证书请求文件传输给CA
    #CA签署证书,并将证书颁发给请求者
    openssl ca -in /data/nginx.csr -out /etc/pki/CA/certs/nginx.crt -days 100
    #注意:默认要求 国家,省,公司名称三项必须和CA一致
    #查看证书中的信息:
    openssl x509 -in /PATH/FROM/CERT_FILE -noout -text|issuer|subject|serial|dates
    openssl ca -status SERIAL 查看指定编号的证书状态

    2、nginx安装部署位nginx-1.16.0的源码安装,详细见《nginx的安装部署》

    3、虚拟主机配置

    server {
      listen 443 ssl;
      server_name localhost;
      #ssl on;
      #在新版本中已经被"listen 443 ssl;"替代
      ssl_certificate /etc/pki/CA/certs/nginx.crt;
      ssl_certificate_key /data/nginx.key;
      ssl_session_cache shared:sslcache:20m;
      ssl_session_timeout 10m;
      location / {
        root  html;
        index index.html index.htm;
      }
    }

    4、重新加载nginx配置文件

    nginx -t
    nginx -s reload

    5、访问测试

    在浏览器访问https://10.0.0.101

     

    I have a dream so I study hard!!!
  • 相关阅读:
    2013ACM多校联合(1)
    AcDream 1083 完美数 数位DP
    AcDream 1079 郭氏数
    AcDream 1084 同心树 几何
    AcDream 1078 递推数 嵌套循环节+矩阵快速幂
    AcDream 1081 平衡树 Tire树
    ZOJ1455 Schedule Problem 差分约束
    在程序中加载log4net配置,防止其他人看到配置文件
    sqlite错误 The database disk image is malformed database disk image is malformed 可解决
    由于这台计算机没有终端服务器客户端访问许可证,远程会话被中断。请与服务器管理员联系 解决
  • 原文地址:https://www.cnblogs.com/yaokaka/p/13653660.html
Copyright © 2011-2022 走看看