Loading... # 2018/12/20更新 现在的宝塔已经支持nginx1.15了,所以只需要宝塔-软件管理-nginx切换版本到nginx1.15 然后在网站的配置文件加上TLSv1.3就可以了 配置文件路径`/www/server/panel/vhost/nginx/xxx.conf`xxx表示你的网站域名 # 前言 --- 我原来宝塔安装的是Nginx1.8,OpenSSL好像也比较老,curl依赖貌似也比较老,升级到Nginx1.15.2,OpenSSL升级到1.1.1-pre8 # 安装OpenSSL --- - 下载OpenSSL pre9版本 `wget https://www.openssl.org/source/openssl-1.1.1-pre9.tar.gz` - 升级OpenSSL ``` tar xvf openssl-1.1.1-pre9.tar.gz rm -f openssl-1.1.1-pre9.tar.gz cd openssl-1.1.1-pre9 ./config --prefix=/usr shared zlib-dynamic rm -f /usr/bin/openssl rm -f /usr/include/openssl make && make install ln -sf /usr/include/openssl/*.h /usr/include/ ln -sf /usr/lib/openssl/engines/*.so /usr/lib/ ldconfig -v echo -e "openssl_installed" >> /www/server/lib.pl ``` **注意:可能因为宝塔版本原因,OpenSSL的位置可能不同** 看一下版本对不对 `openssl version` # 升级curl --- - 添加一个新的repo `vim /etc/yum.repos.d/city-fan.repo` 在里面添加内容 ``` [CityFan] name=City Fan Repo baseurl=http://nervion.us.es/city-fan/yum-repo/rhel$releasever/$basearch/ enabled=1 gpgcheck=0 ``` - 升级 `yum clean all` `yum install libcurl ` # 安装Nginx1.15.2 --- - 下载Nginx `wget http://nginx.org/download/nginx-1.15.2.tar.gz` - 解压 `tar -zxvf nginx-1.15.2.tar.gz` - 编译 ``` ./configure \ --user=www \ --group=www \ --prefix=/www/server/nginx \ --with-openssl=/usr/local/ssl/ssl \ --add-module=/www/server/nginx/src/ngx_devel_kit \ --add-module=/www/server/nginx/src/ngx_cache_purge \ --with-http_stub_status_module \ --with-http_ssl_module \ --with-http_v2_module \ --with-http_gzip_static_module \ --with-http_gunzip_module \ --with-ipv6 \ --with-http_sub_module \ --with-http_flv_module \ --with-http_addition_module \ --with-http_realip_module \ --with-http_mp4_module \ --with-ld-opt=-Wl,-E \ --with-openssl=../openssl \ --with-openssl-opt='enable-tls1_3 enable-weak-ssl-ciphers' ``` **注意:第五行OpenSSL的位置,我这是自己装的openssl的位置,可能和你们不一样** ./configure之后会有 ipv6 的警告, 这个可以不用管。 `make -j 2` make -j 2代表同时使用 2 线程编译,根据自己几个核心判断,如果中途报错,改成`make`即可 - 寻找已存在的Nginx `find / -name nginx`  路径为/www/server/nginx/sbin/nginx的应该就是宝塔安装的Nginx了,执行`/www/server/nginx/sbin/nginx -V`看一下版本是不是就是宝塔安装的那个,可以看到 nginx 的版本和参数都和宝塔 nginx 的一样, 可以确定这就是宝塔的 nginx。 - 使用 cp 命令将编译好的新版本覆盖掉宝塔的 nginx。 `cp objs/nginx /www/server/nginx/sbin/nginx` **注意:如果提示文件正忙需要先去宝塔停止 nginx 之后再覆盖, 覆盖后再打开 nginx, 如果没有提示文件正忙直接覆盖后去面板点击重载配置** - 检验 输入 `nginx -v`看看是不是升级的版本 # 开启TLS1.3 --- 宝塔的路径是`/www/server/panel/vhost/nginx`  如图在`ssl_protocols`后面加TLSv1.3 `ssl_ciphers`后面写 ``` TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-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:!MD5; ``` # 浏览器配置 --- 这时你打开Chrome浏览器按F12,选择security,看到的仍然是TLS1.3,这时因为浏览器还没有适配tls1.3 final。你可以下载一个Chrome canary版本,图标是金色的。 打开canary,地址栏输入`chrome://flags`  选择final。重启浏览器,打开你的站点,就可以看到TLS1.3了 最后修改:2022 年 04 月 18 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 0 如果觉得我的文章对你有用,请随意赞赏