• https原理及实践



    转载请注明出处

    安全知识

    网络安全问题

    数据机密性

    在网络传输数据信息时,对数据的加密是至关重要的,否则所有传输的数据都是可以随时被第三方看到,完全没有机密性可言。

    数据机密性解决问题思路

    利用算法

    为了保证数据的机密性,首先可以采用的方法就是将数据通过相应算法,转换为其它的数据信息,然后再通过相应算法反推出真正的数据是什么,这样一来就保证了数据在网络传输过程中安全性,不会被其它人轻易的看到传输过程中的数据信息。数据加密前的信息称为明文数据(plaintext),经过加密算法转换后进行传输的信息称为密文数据(ciphertext);反之经 过解密算法转换后,会将密文数据恢复为明文数据进行显示接收。

    优点:实现了数据机密传输,避免了明文传输数据的危险性。

    缺点:利用加密算法,将明文改密文,如果第三方获得加密算法,即可将传输密文再次变为明文。

    利用对称加密算法解决机密性

    普通算法虽然已经解决了明文数据的机密性,可以在网络传输过程中不被直接看到明文数据。 但是新的问题又产生了,既然明文数据是通过算法改变成了新的数据信息,如果第三方获得 了算法,利用算法也是可以将密文数据信息,再次转换为明文数据信息,因此出现了对称加 密算法。形象比喻来说:数据加密算法就好比是一本密码规则手册,而对称加密算法就是将手册放在了一个保险柜中进行了上锁传输,只有传递数据信息的双方知道打开保险柜的密码。

    数据完整性

    网络传输数据的完整性,也是安全领域中需要考虑的重要环节,如果不能保证传输数据的完整性,那传输过程中的数据就有可能被任何人所篡改,而传输数据双方又不能及早的进行发现。将会造成互连通讯双方所表达信息的意义完全不一致。因此,对于不完整的数据信息,接收方应该进行相应判断,如果完整性验证错误,就拒绝接受相应的数据。

    数据完整性解决思路

    利用单向加密算法

    利用数据的单项加密算法(提取数据指纹),进行提取数据特征码的方式,从而完成数据传 输的完整性验证。实际的算法实现过程为:在一段明文数据信息后加上敎据信息的特征码, 这个特征码是通过结合数据信息进行相应算法获得的数据特征码,接收方当收到数据信息后, 会利用相同的加密算法对获取的数据进行加密,确认加密后得到的特征码是否与传送过来数 据后面描述的特征码一致;如果一致,可以表示数据没有被篡改过,如果不一致表示数据完 整性遭到了破坏,数据一概不予以接收处理。

    利用单项加密算法(加密特征码)

    由于可能存在中间人攻击的可能性,因此可以对传输过程中数据特征码进行加密,发送方利用对称密钥方式对手中的特征码进行加密,接收方会利用相同的密钥对手中的特征码进行解密,从而确认特征码是否一致。如果中间人将新的特征码也进行了加密,发送给接收方,但接收方无法利用和发送方协商好的解密密钥对特征码进行解密,最终无法识别中间人发送过来的数据特征码信息。

    单项加密算法特征:

    • 数据输入一样,特征码信息输出必然相同
    • 雪崩效应,输入的微小改变,将造成输出的巨大改变
    • 定长输出,无论源数据多大,但结果都是一样的
    • 不可逆的,无论根据数据指纹,还原出原来的数据信息

    单项加密算法常见的有:

    • DH加密算法,主要用于密钥的协商交换
    • MD4 MD5(128)
    • SHA1(160) SHA(192) SHA(256) SHA(384)
    • CRC-32(循环输出校验码),不是加密机制,只是一种校验机制,不提供安全性,正常加密算 法是不允许出现输入不一样,输出一样的情况,但CRC是可以有这样情况的,因为CRC只 是具有校验功能,不具有加密功能

    非对称加密算法常见的有:

    • RSA,RSA既是一个公司的名称,也是三个创始人的名称,RSA既可以加密又可以进行签名。
    • DSA,只能实现数字签名功能
    • ELGamal,属于商业化的加密算法

    身份验证

    网络中传输数据时,很有可能传输的双方是第一次建立连接,进行相互通讯,既然是第一次 见面沟通,如何确认对方的身份信息,的确是我要进行通讯的对象呢?如果不是正确的通讯 对象,在经过通讯后,岂不是将所有数据信息发送给了一个陌生人。

    网络安全证书由来

     获取公钥信息的证书

     默认公钥在网络中进行传递时,默认情况下也是会出现问题的如下图所示:

     

    对发送方的公钥信息进行公正步骤:(借助第三方安全机构)

    • A和B端首先生成自己的公钥和私钥的密钥对,为了使对方能相佶自己的公钥信息。将自己的公钥信息告知给第三方发证机构,利用第三方机构对自己的公钥进行公证。第三方机构会制作一个数字证书(机构 编号 以及发证机构的戳)。并且第三方机构也要给自己设置—个合法的公钥和私钥,并且公钥设置为第三方机构的公钥证书。
    • 发证机关计算出数字证书数据的特征码,并用自己的私钥逬行加密,并将加密的信息附加到特征码后成为数字签名。
    • A和B两端获得公正过的证书信息,并通过证书信息传递,得到对方的公钥。
    • A和B两端与第三方机构建立连接,获得第三方证书,通过第三方证书获得第三方公钥,利用第三方公钥只要能解密数字签名即可。

     证书信息所包含内容

    目前标准的证书存储格式是X509,还有其他的证书格式,需要包含的内容为:

    • 公钥信息,以及证书过期时间
    • 证书的合法拥有人信息
    • 证书该如何被使用
    • CA颁发机构信息
    • CA签名的校验码

    互联网上使用的SSL和TLS证书管理机制均使用X509的格式

     OpenSSL软件介绍

    Netscape网景公司生产了最初的浏览器,但为了提高浏览器访问页面的安全性,对TCP/IP模型进行了一定改进,在传输层与应用层之间,创建了一个3.5层的概念,称为SSL((Secure Sockets Layer安全套接层))层,SSL不是一个软件,只是一个库,让应用层将数据传输到传输层前,调用了ssl层的功能对数据进行了加密,目前比较流行的版本是(SSLv2 V3),但是SSL是netscape公司进行定义的,不够开放性,因此为了使加密功能更加开放,TSL(传输层安全协议)协议就出现了,目前比较流行的版本是(TSLv1==ssl v3),TSL更像是传输层上实现的数据加密。

    OpenSSL软件详细说明

    1、获取OpenSSL软件的版本信息:

    [root@web01 html]# openssl version
    OpenSSL 1.0.1e-fips 11 Feb 2013
    [root@web01 html]# rpm -qa openssl
    openssl-1.0.1e-57.el6.x86_64

    2、获取OpenSSL配置文件信息: 

    /etc/pki/tls/openssl.cnf    <- openssl配置文件,主要用于配置成私有ca时进行使用

    3、获取OpenSSL命令详细信息:

     openssl命令详细信息

    OpenSSL软件建立私有CA

    创建私钥与公钥信息

    需要先给ca证书颁发机构生成证书,即生成一对密钥;genrsa - generate an RSA private key利用genrsa生成密钥信息。虽然只是生成私钥,但需要清楚公钥是通过私钥进行提取得到的,所以只要有私钥,就可以有公钥。私钥信息是非常重要的,因此生成的私钥文件应该是600的权限 

     View Code

    实操私钥与公钥建立

     密钥建立

    生成自签署的证书

     生成自签署证书

    ca颁发机构的私钥和证书是不能随便放置的,并且需要配置私有颁发机构的配置文件

    vim /etc/pki/tls/openssl.cnf

    [CA_default]模块参数说明:

    参数

    配置

    官方配置说明

    解释配置说明

    dir

    =/etc/pki/CA

    #Where everthing is kept

    创建并定义CA目录信息

    certs

    = $dir/certs

    #Where the issued certs are kept

    证书文件保存目录

    crl_dir

    = $dir/crl

    #Where the issued crl are kept

    证书吊销文件保存目录

    database

    = $dir/index.txt

    # data index file

    表示发过哪些证书,都要文件进 行记录

    new_certs_dir

    = $dir/newcerts

    #default place for new certs

    默认新证书的存放路径

    certificate

    = $dir/cacert.pem

    #The CA certificate

    定义CA机构自己的证书

    serial

    = $dir/serial

    #The current serial number

    表示证书对应的序列号,一般从 01开始

    crinumber

    = $dir/crinumber

    #The current crl number

    表示吊销证书对应的序列号

    crl

    = $dir/crl.pem

    #The current CRL

    表示当前证书吊销列表文件

    private_key

    = $dir/private/cakey.pem

    #The private key

    表示CA机构目身的私钥文件

    RANDFILE

    = $dir/private/.rand

    #private random number file

    私钥随机数文件,此文件会默认自己建立

    在/etc/pki/CA的证书路径下,还需要有certs crl newcerts三个子目录信息

    指定证书相关的有效期限配置:

    参数

    配置

    官方配置说明

    解释配置说明

    default_days

    = 365

    #how long to certify for

    定义证书的有效期限

    default_crl_days

    = 30

    #how long before next CRL

    默认证书放罝到吊销列表中的保存时间

    default_md

    = default

    #use public key default MD

    指定单向加密算法采用的是默认的

    定义[req_distinguished_name]模块参数信息,即指定证书中的一些基本属性信息

    参数

    配置

    举例配置

    解释配置说明

    countryName_default

    =XX

    = CN

    默认的国家改为本地区域名称

    stateOrProvinceName_default

    = Default Province

    = beijing

    默认的省份名称改为本地区域名称

    localityName_default

    =Default City

    = beijing

    默认的城市名称改为本地区域名称

    0.orgzanizationName_default

    =Default Company Ltd

    = o

    默认的公司组织名称

    organizationalUnitName_default

    =

    =ol

    默认的公司部分名称

    私有HTTPS实现

    nginx配置文件

    复制代码
    server {
            listen       443;      # https的端口为443,要指定
            server_name  www.erlianzhang.com;
            ssl on;                # 开启ssl,下两行第一行是引用证书,第二行是引用私钥
            ssl_certificate /application/nginx/conf/keys/server.crt;
            ssl_certificate_key /application/nginx/conf/keys/server.key;
            location / {
                root   html/;
                index  index.html index.htm;
            }
    }
    复制代码

    设置自动跳转https

     每次都要输入https很烦,所以设置自动跳转

    利用地址重写功能(方法1)

    在原本的server模块上在加一个server:

    server {
        listen  80;
        server_name www.erlianzhang.com;
        rewrite ^(.*)$  https://$host$1 permanent;
    }

    说明:在https配置server基础上再添加http跳转server

    利用error_page识别错误码信息进行跳转(方法2)

    复制代码
    server {
            listen       443;
            listen       80;
            server_name  www.erlianzhang.com;
            ssl on;
            ssl_certificate /application/nginx/conf/key/server.crt;
            ssl_certificate_key /application/nginx/conf/key/server.key;
            location / {
                root   html/www;
                index  index.html index.htm;
            }
           error_page 497  https://$host$uri;
    }
    复制代码

    说明:497为内置错误码,当访问http无法处理,需要利用https处理时

    利用反向代理服务器进行http到https跳转

    修改地址池信息

    将端口改为https的默认443端口 

    upstream www_server_pools {
                server 10.0.0.7:443;
                server 10.0.0.8:443;
                server 10.0.0.9:443;
    }

    引用地址池时也要把http改成https

    proxy_pass https://web_pools;

    修改地址池调用信息

    注意,负载上也要有key证书与私钥文件

    复制代码
    server {
        listen       443;
        server_name  www.erlianzhang.com;
        ssl on;
        ssl_certificate /application/nginx/conf/key/server.crt;
        ssl_certificate_key /application/nginx/conf/key/server.key;
        location / {
        proxy_pass https://www_server_pools;
        }
    }
    复制代码

    定义http到https跳转配置信息

    server {
        listen       80;
        server_name  www.erlianzhang.com;
        rewrite ^(.*)$  https://$host$1 permanent;
    }

    nginx中的ngx_http_ssl_module模块(https相关)

    指令

    ssl

    语法:    ssl on | off;
    默认:    ssl off
    语境:    http,server
    功能:    ssl功能启用/不启用

    为给定的虚拟服务器启用HTTPS协议。

    ssl_buffer_size

    句法:    ssl_buffer_size size;
    默认:    ssl_buffer_size 16k;
    语境:    http, server
    该指令出现在1.5.9版本中。
    功能:    设置用于发送数据的缓冲区的大小。

    默认情况下,缓冲区大小为16k,这对应于发送大响应时的最小开销。为了最小化第一个字节的时间,使用较小的值可能是有益的,例如:

    ssl_buffer_size 4k;

    ssl_certificate

    句法:    ssl_certificate file;
    默认:    -
    语境:    http, server
    功能:    指定当前虚拟主机所使用的证书文件

    指定file具有给定虚拟服务器的PEM格式的证书。如果除了主要证书之外还应该指定中间证书,则应该按照以下顺序在同一个文件中指定它们:主要证书首先是中间证书,然后是中间证书。PEM格式的密钥可以放在同一个文件中。

    从版本1.11.0开始,可以多次指定该指令来加载不同类型的证书,例如RSA和ECDSA:

     例子

    注意:应该记住的是,由于HTTPS协议限制了最大的互操作性,虚拟服务器应该监听不同的IP地址。

    ssl_certificate_key

    句法:    ssl_certificate_key file;
    默认:    -
    语境:    http, server
    功能:    当前虚拟主机与其证书文件匹配的私钥文件,用来解密

    指定file给定虚拟服务器的PEM格式密钥。

    可以指定值engine:name:id可以指定代替file(1.7.9),该文件从OpenSSL引擎名称加载具有指定标识的密钥id。

    ssl_ciphers

    句法:    ssl_ciphers ciphers;
    默认:    ssl_ciphers HIGH:!aNULL:!MD5;
    语境:    http, server
    功能:    指定支持加密算法

    指定启用的密码。密码以OpenSSL库理解的格式指定,例如:

    ssl_ciphers ALL:!aNULL:!EXPORT56:RC4 + RSA:+ HIGH:+ MEDIUM:+ LOW:+ SSLv2:+ EXP;

    完整列表可以使用“ openssl ciphers”命令查看。

    以前版本的nginx 默认使用不同的密码。

    ssl_client_certificate

    句法:    ssl_client_certificate file;
    默认:    -
    语境:    http, server
    功能:    制定一个受信任的CA证书用于验证客户端证书

    如果启用了ssl_stapling,则指定包含filePEM格式的可信CA证书,用于验证客户端证书和OCSP响应。

    证书列表将被发送给客户。如果不需要,可以使用ssl_trusted_certificate指令。

    ssl_crl

    句法:    ssl_crl file;
    默认:    -
    语境:    http, server
    该指令出现在0.8.7版本中。
    功能:    证书吊销列表

    指定file用于验证客户端证书的PEM格式的撤销证书(CRL)。

    ssl_dhparam

    句法:    ssl_dhparam file;
    默认:    -
    语境:    http, server
    该指令出现在0.7.2版本中。

    指定fileDHE密码的DH参数。

    ssl_ecdh_curve

    句法:    ssl_ecdh_curve curve;
    默认:    ssl_ecdh_curve auto;
    语境:    http, server
    该指令出现在版本1.1.0和1.0.6中。

    指定一个curve用于ECDHE密码。

    当使用OpenSSL 1.0.2或更高版本时,可以指定多条曲线(1.11.0),例如:

    ssl_ecdh_curve prime256v1:secp384r1;

    特殊值auto(1.11.0)指示nginx在使用OpenSSL 1.0.2或更高prime256v1版本时使用OpenSSL库中内置的列表,或使用旧版本。

    在版本1.11.0之前,prime256v1曲线是默认使用的。

    ssl_password_file

    句法:    ssl_password_file file;
    默认:    -
    语境:    http, server
    该指令出现在版本1.7.3。
    功能:    指定password文件

    指定file使用密码对密钥 ,其中每个密码都在单独的行中指定。加载密钥时会依次尝试密码。例:

     例子

    ssl_prefer_server_ciphers

    句法:    ssl_prefer_server_ciphers on | off;
    默认:    ssl_prefer_server_ciphers off;
    语境:    http, server
    功能:    服务端倾向使用的加密算法

    指定在使用SSLv3和TLS协议时,服务器密码应优先于客户端密码。

    ssl_protocols

    句法:    ssl_protocols [SSLv2] [SSLv3] [TLSv1] [TLSv1.1] [TLSv1.2] [TLSv1.3];
    默认:    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    语境:    http, server
    功能:    使用什么样的加密协议,支持ssl协议版本

    启用指定的协议。

    TLSv1.1和TLSv1.2参数(1.1.13,1.0.12)仅在使用OpenSSL 1.0.1或更高版本时才起作用。

    仅当使用支持TLSv1.3的OpenSSL 1.1.1时 ,TLSv1.3参数(1.13.0)才起作用。

    ssl_session_cache

    句法:    ssl_session_cache off | none | [builtin[:size]] [shared:name:size];
    默认:    ssl_session_cache无;
    语境:    http, server
    功能:    ssl会话缓存

    设置存储会话参数的高速缓存的类型和大小。缓存可以是以下任何一种类型:

    off

    严禁使用会话缓存:nginx明确告诉客户端会话可能不会被重用。

    none

    会话缓存的使用被轻轻地禁止:nginx告诉客户端会话可能被重用,但实际上不会将会话参数存储在缓存中。

    builtin

    建立在OpenSSL中的缓存; 仅由一个工作进程使用。缓存大小在会话中指定。如果没有给出大小,则等于20480个会话。内置缓存的使用可能导致内存碎片。

    shared

    所有工作进程之间共享的缓存。缓存大小以字节为单位指定; 一兆字节可以存储大约4000个会话。每个共享缓存都应该有一个任意的名字。具有相同名称的缓存可以在多个虚拟服务器中使用。

    两种缓存类型都可以同时使用,例如:

    ssl_session_cache builtin:1000 shared:SSL:10m;

    注意:但只使用没有内置缓存的共享缓存应该更有效率。

    ssl_session_ticket_key

    句法:    ssl_session_ticket_key file;
    默认:    -
    语境:    http, server
    这个指令出现在1.5.7版本中。

    file使用用于加密和解密TLS会话票据的密钥设置a。如果必须在多个服务器之间共享相同的密钥,则该指令是必需的。默认情况下,使用随机生成的密钥。

    如果指定了多个密钥,则只使用第一个密钥来加密TLS会话票据。这允许配置密钥旋转,例如:

    ssl_session_ticket_key current.key;
    ssl_session_ticket_key previous.key;

    file必须含有80或48个字节的随机数据,并且可以使用下面的命令创建:

    openssl rand 80> ticket.key

    根据文件大小,AES256(80字节密钥,1.11.8)或AES128(48字节密钥)用于加密。

    ssl_session_tickets

    句法:    ssl_session_tickets on | off;
    默认:    ssl_session_tickets;
    语境:    http, server
    该指令出现在1.5.9版本中。
    功能:    禁用或启用会话恢复

    通过TLS会话票据启用或禁用会话恢复。

    ssl_session_timeout

    句法:    ssl_session_timeout time;
    默认:    ssl_session_timeout 5m;
    语境:    http, server
    功能:    ssl参数的有效时长,会话超时时间

    指定客户端可以重新使用会话参数的时间。

    ssl_stapling

    句法:    ssl_stapling on | off;
    默认:    ssl_stapling off;
    语境:    http, server
    这个指令出现在1.3.7版本中。

    启用或禁用 服务器对OCSP响应的装订。例:

    ssl_stapling on;
    resolver 192.0.2.1;

    要使OCSP装订工作,应该知道服务器证书颁发者的证书。如果ssl_certificate文件不包含中间证书,则服务器证书颁发者的证书应存在于ssl_trusted_certificate文件中。

    对于OCSP响应者主机名的解析,也应指定解析器指令。

    ssl_stapling_file

    句法:    ssl_stapling_file file;
    默认:    -
    语境:    http, server
    这个指令出现在1.3.7版本中。

    设置时,装订好的OCSP响应将取自指定的地址,file而不是查询服务器证书中指定的OCSP响应者。

    该文件应该是由“openssl ocsp”命令产生的DER格式。

    ssl_stapling_responder

    句法:    ssl_stapling_responder url;
    默认:    -
    语境:    http, server
    这个指令出现在1.3.7版本中。

    覆盖“ 授权信息访问 ”证书扩展中指定的OCSP响应者的URL 。

    仅http://支持“ ”OCSP响应者:

    ssl_stapling_responder http://ocsp.example.com/;

    ssl_stapling_verify

    句法:    ssl_stapling_verify on | off;
    默认:    ssl_stapling_verify off;
    语境:    http, server
    这个指令出现在1.3.7版本中。

    启用或禁用服务器验证OCSP响应。

    要使验证生效,应使用ssl_trusted_certificate指令将服务器证书颁发者,根证书和所有中间证书的证书配置为可信。

    ssl_trusted_certificate

    句法:    ssl_trusted_certificate file;
    默认:    -
    语境:    http, server
    这个指令出现在1.3.7版本中。

    如果启用了ssl_stapling,则 指定包含filePEM格式的可信CA证书,用于验证客户端证书和OCSP响应。

    与由ssl_client_certificate设置的证书相比,这些证书的列表不会被发送到客户端。

    ssl_verify_client

    句法:    ssl_verify_client on | off | optional | optional_no_ca;
    默认:    ssl_verify_client off;
    语境:    http, server

    启用客户端证书的验证。验证结果存储在 $ ssl_client_verify变量中。

    的optional参数(0.8.7+)请求的客户端证书,并验证它证书是否存在。

    该optional_no_ca参数(1.3.8,1.2.5)要求客户端证书,但不要求它由受信任的CA证书进行签名。这适用于nginx外部的服务执行实际证书验证的情况。证书的内容可以通过$ ssl_client_cert变量访问。

    ssl_verify_depth

    句法:    ssl_verify_depth number;
    默认:    ssl_verify_depth 1;
    语境:    http, server

    设置客户端证书链中的验证深度。

    错误处理

    该ngx_http_ssl_module模块支持使用error_page指令可以用于重定向的几个非标准错误代码 :

    495     客户端证书验证过程中发生错误;
    496     客户没有提交所需的证书;
    497     常规请求已发送到HTTPS端口。

    重定向发生后,该请求被完全解析和变量,如requesturirequesturi,uri,$args等人,都可用。

    嵌入式变量

    该ngx_http_ssl_module模块支持多个嵌入式变量:

    $ssl_cipher

    返回用于建立的SSL连接的密码字符串;

    $ssl_ciphers

    返回客户端支持的密码列表(1.11.7)。已知的密码按名称列出,未知以十六进制显示,例如:

    AES128-SHA:AES256-SHA:0x00ff

    注意:只有在使用OpenSSL版本1.0.2或更高版本时才支持该变量。对于旧版本,该变量仅适用于新会话,并只列出已知密码。

    $ssl_client_escaped_cert

    以建立的SSL连接(1.13.5)返回PEM格式的客户端证书(urlencoded);

    $ssl_client_cert

    以建立的SSL连接的PEM格式返回客户端证书,除第一行之外的每一行都加上制表符;这是为了在 proxy_set_header指令中使用;

    注意:该变量已被弃用,$ssl_client_escaped_cert应该使用该变量。

    $ssl_client_fingerprint

    为建立的SSL连接(1.7.1)返回客户端证书的SHA1指纹;

    $ssl_client_i_dn

    根据RFC 2253(1.11.6),为建立的SSL连接返回客户端证书的“颁发者DN”字符串;

    $ssl_client_i_dn_legacy

    为建立的SSL连接返回客户端证书的“颁发者DN”字符串;

    说明:在版本1.11.6之前,变量名是$ssl_client_i_dn。

    $ssl_client_raw_cert

    以建立的SSL连接的PEM格式返回客户端证书;

    $ssl_client_s_dn

    根据RFC 2253(1.11.6),为建立的SSL连接返回客户端证书的“主题DN”字符串;

    $ssl_client_s_dn_legacy

    为建立的SSL连接返回客户端证书的“主题DN”字符串;

    说明:在版本1.11.6之前,变量名是$ssl_client_s_dn。

    $ssl_client_serial

    为建立的SSL连接返回客户端证书的序列号;

    $ssl_client_v_end

    返回客户端证书的结束日期(1.11.7);

    $ssl_client_v_remain

    返回客户端证书过期的天数(1.11.7);

    $ssl_client_v_start

    返回客户端证书的开始日期(1.11.7);

    $ssl_client_verify

    如果证书不存在,则 返回客户端证书验证的结果:“ SUCCESS”,“ FAILED:reason”和“ NONE”;

    说明:在版本1.11.7之前,“ FAILED”结果不包含reason字符串。

    $ssl_curves

    返回客户端支持的曲线列表(1.11.7)。已知曲线按名称列出,未知以十六进制显示,例如:

    0x001d:prime256v1:secp521r1:secp384r1

    注意:只有在使用OpenSSL版本1.0.2或更高版本时才支持该变量。对于旧版本,变量值将是一个空字符串。该变量仅适用于新会话。

    $ssl_protocol

    返回建立的SSL连接的协议;

    $ssl_server_name

    通过SNI (1.7.0)返回请求的服务器名称 ;

    $ssl_session_id

    返回建立的SSL连接的会话标识符;

    $ssl_session_reused

    如果SSL会话被重用,则 返回“ ”;否则返回“ ” .(1.5.11)。

  • 相关阅读:
    centos vsftpd
    centos nginx
    linux 修改配色
    面试题讲解
    文件操作
    Python
    Python-linux作业
    python(12.17)笔记
    python周末作业(12.14--16)
    python作业(12.12)
  • 原文地址:https://www.cnblogs.com/powerplay/p/8424324.html
Copyright © 2020-2023  润新知