一 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 自身 495 496 497 状态码
目的: 通过这些'状态码'几个'error+page'指令尽早的'发现'问题
eg: 当'客户端'证书过期了,给'客户端'一个'明显'的'错误'信息
++++++++++++  '简述'  ++++++++++++
495: 客户端提供了一个'无效'的证书               --> "证书过期"
496: 需要客户端提供 'SSL 证书',客户端却没有提供  --> "双向认证"
497: HTTP 请求发送到了'HTTPS'                --> 常见'http'请求到'https端口'
⑦ 熵
cat /proc/sys/kernel/random/entropy_avail
诶精: 一般是云上'虚拟机'的场景,随机数产生的'太慢',需要 '> 1000'https证书加解密熵不足安装haveged Linux中使用haveged对/dev/random补熵 熵不足
⑧ 如何使用wiresahrk解密TLS/SSL报文



















