nginx(七十九)nginx与tls/ssl续

一  nginx与tls/ssl续

说明: 本文是基于'tls/ssl'学习之后,对'之前所写tls/ssl博客'的补充,'重复的'不再啰嗦

curve: '[椭圆] 曲线'

补充: 会'不定期'的补充

教育: 解决问题为出发点,不要停留在理论上

​遗留: wiresahrk分析TLS '1.2' '1.3' 握手各个'过程'

优化TLS/SSL性能该从何下手?

①   背景铺垫

http_ssl模块 client与nginx的ssl握手

nginx与上游的ssl握手续

TLS/SSL专栏

②   nginx作为服务端与client之间的tls变量

core模块: $https 、$proxy_protocol_tlv_name '1.23.2 [了解]'、'$scheme'

③  ssl_conf_command和ssl_reject_handshake补充

ssl_conf_command Options PrioritizeChaCha;

等效于'SSL_OP_PRIORITIZE_CHACHA'

1.19.4+ ssl_conf_command和ssl_reject_handshake 特性

背景: 为了当'机器人或者奇怪的人类'通过HTTPS访问你的ip时'不暴露'证书,也就不会暴露'域名'

server {
    listen               443 ssl;
    ssl_reject_handshake on;
}

server {
    listen              443 ssl;
    server_name         example.com;
    ssl_certificate     example.com.crt;
    ssl_certificate_key example.com.key;
}

含义: 除'example.com'以外,其他'域名'的SSL握手将'被拒绝'

特点: '返回UNRECOGNIZED NAME',Chrome提示'ERR_SSL_UNRECOGNIZED_NAME_ALERT'

使用Kernel TLS 和 SSL_sendfile( ) 提高 NGINX 性能

推荐: 'http作用域'使用

ssl_conf_command Options KTLS;

ssl_protocols TLSv1.3;

ssl_conf_command ciphersuites指令来配置加密套件

1、'默认'加密套件

ssl_conf_command ciphersuites DEFAULT;

2、'启用TLSv1.2'协议,并使用'AES128-SHA256'和'AES128-SHA'算法进行加密

ssl_conf_command ciphersuites TLSv1.2+AES128-SHA256:TLSv1.2+AES128-SHA;

备注: Ciphersuites指定了'SSL/TLS'使用的'加密'协议,'密钥交换'算法,加密算法和MAC算法组合

④  ssl_ciphers再探

需求: ssl_ciphers 禁止'不安全'的加密套件,只允许'有限 [白名单]'安全的加密套件?

⑤  新特性补充

nginx(七十九)nginx与tls/ssl续_第1张图片

⑥  nginx 自身 495 496 497 状态码

目的: 通过这些'状态码'几个'error+page'指令尽早的'发现'问题

eg: 当'客户端'证书过期了,给'客户端'一个'明显'的'错误'信息

++++++++++++  '简述'  ++++++++++++

495: 客户端提供了一个'无效'的证书               --> "证书过期"

496: 需要客户端提供 'SSL 证书',客户端却没有提供  --> "双向认证"

497: HTTP 请求发送到了'HTTPS'                --> 常见'http'请求到'https端口'

nginx(七十九)nginx与tls/ssl续_第2张图片

⑦  熵

cat /proc/sys/kernel/random/entropy_avail

诶精: 一般是云上'虚拟机'的场景,随机数产生的'太慢',需要 '> 1000'

https证书加解密熵不足安装haveged   Linux中使用haveged对/dev/random补熵  熵不足

⑧   如何使用wiresahrk解密TLS/SSL报文

你可能感兴趣的:(TLS/SSL系列,nginx,https)