Sep 03

dnsproxy 命令行:

dnsproxy -l 127.0.0.1 -p 0 -s 8053 -u 8.8.8.8 -u 1.1.1.1 -f 9.9.9.11 --edns --edns-addr=202.62.222.220 --all-servers --cache --cache-size=10485760 --cache-optimistic -c fullchain.cer -k your.key

这里需要注意,如果不指定证书和密匙,dnsproxy 不会建立 HTTP/HTTPS 监听,也没有任何报错。

nginx:

location /dns-query {
proxy_pass https://127.0.0.1:8053/dns-query;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}

注意,nginx 原本网站配置该加载证书密匙还是保留加载,不需要改。


Jan 08

关于浏览器支持 TLSv1.3 的情况请参考:https://caniuse.com/#feat=tls1-3

主流的 Chrome 70+ 版本支持 TLS 1.3 Final;Firefox 63+ 确认 about:config 中的 security.tls.version.max 为 4;

具体方法:

1. 修改 lnmp1.5 脚本文件
首先是 \lnmp1.5\include\version.sh 文件,将 Openssl_Ver='openssl-1.0.2o' 修改为:Openssl_Ver='openssl-1.1.1a'

2. 使用 lnmp1.5 脚本升级 nginx

进入 lnmp1.5 目录,执行命令:

./upgrade.sh nginx

然后输入需要升级的 nginx 版本号,如目前最新的 1.15.8。nginx 最新版本号可从官网获取:http://nginx.org

静待编译完成。

执行 nginx -V 可查询详细配置信息:

nginx version: nginx/1.15.8
built by gcc 5.4.0 20160609 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.11)
built with OpenSSL 1.1.1a 20 Nov 2018
TLS SNI support enabled
configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_sub_module --with-stream --with-stream_ssl_module --with-openssl=/home/vmmate/Src/lnmp1.5-full/src/openssl-1.1.1a --with-ld-opt='-ljemalloc'

3. 修改主机配置文件

ssl_protocols 加入 TLSv1.3 支持,如:

ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;

ssl_ciphers 参考配置(包含 TLS13 是 TLS 1.3 新增的 Cipher Suite,加在最前面即可;):

ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256
:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128
:RSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:EECDH+ECDSA+3DES
:EECDH+aRSA+3DES:RSA+3DES:!MD;

文件修改完,重启一下 nginx:

sudo lnmp nginx restart

然后就可以去浏览器访问验证一下。

TLSv1.3 是否开启成功验证:

1、Chrome 70+ 版本打开网站,F12 打开开发者工具,「Security」可以看到 Connection - secure (strong TLS 1.3) 字样信息。

2、Firefox 63+ 版本打开网站,F12 打开开发者工具,「网络」,刷新页面,在「网络」资源列表下随便选中一个本站链接或者打开页面的链接,然后在右侧详细信息查看「安全性」即可看到连接协议版本。

3、在线检测:https://www.ssllabs.com。