阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

记录一次nginx升级,支持ipv4和ipv6访问https

71次阅读
没有评论

共计 1710 个字符,预计需要花费 5 分钟才能阅读完成。

导读 项目要求,需要让现有网站项目支持 https,并同时支持 ipv6 访问,经过分析,现在 nginx 版本较老,所以决定升级 nignx,并且同步配置 https 和 ipv6。
升级准备

服务器网络环境需要支持 ipv6,并且分配公网 ipv6 地址,ssl 证书提前申请好.

下载 nginx
wget http://nginx.org/download/nginx-1.18.0.tar.gz
安装 openssl
yum install openssl
yum install openssl-devel

判断域名解析是否支持 ipv6
找一台支持 ipv6 网络的客户端电脑,仅使用 ipv6 网络来 ping 网站域名,如果解析域名返回的 ip 地址不是 ipv6,则说明域名 ipv6 解析未做。编译 nginx

./configure     --user=root     --group=root     --prefix=/usr/local/nginx     --with-http_ssl_module     --with-stream     --with-mail=dynamic     --with-http_gzip_static_module     --with-pcre   --with-http_mp4_module     --with-http_gunzip_module  --with-ipv6
make
make install

这里注意,在较高的 nginx 版本里面,已经自带了 ipv6 模块,不用增加–with-ipv6,如果是比较老的版本编译,需要增加–with-ipv6,如果编译的时候出现如下警告提示,说明版本已经自带 ipv6 模块:
记录一次 nginx 升级, 支持 ipv4 和 ipv6 访问 https

修改配置文件
把之前申请的 https 证书(crt 文件和 key 文件)上传到服务器目录

listen 443 ssl;
    listen [::]:443 ssl;
    ssl_certificate  /usr/local/nginx/conf/conf.d/ssl/www.aaa.gov.cn.crt;  
    ssl_certificate_key  /usr/local/nginx/conf/conf.d/ssl/www.aaa.gov.cn.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;

listen 443 ssl; 支持 ipv4 访问 https
listen [::]:443 ssl; 支持 ipv6 访问 https
防火墙开放 443 端口
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --reload
重载 nginx 配置文件
./sbin/nginx -s reload

查看 443 端口是否在监听状态

lsof -i:443

记录一次 nginx 升级, 支持 ipv4 和 ipv6 访问 https

如图所示,https 协议已经在监听状态,并且分别支持 ipv4 和 ipv6!

遇到的坑

一切操作和流程都没有问题,但是发现启动后,网站只支持 ipv4 访问 htpps,ipv6 访问提示如下错误:
记录一次 nginx 升级, 支持 ipv4 和 ipv6 访问 https
提示: 错误代码:SSL_ERROR_RX_RECORD_TOO_LONG
通过分析得出:
ipv4 下能正常访问 https
ipv6 下访问 https 的流量是到了 nginx 服务器
ipv6 下测试 443 端口是通的
经过反复分析以及错误代码提示能判断出 ipv6 是证书没有被有效识别到,导致 ipv6 无法使用 https,但是 ipv4 下又能识别到证书,根据这一现象,能判断出是 ipv4 和 ipv6 下网络流量的走向不同所致,经过和云服务器提供商沟通,发现原来是在 ipv6 下互联网访问 443 端口的流量被映射到了内网服务器的 80 端口,所以 ipv6 下测试 443 端口是通的,但是又无法识别证书的问题。

总结

总体上升级配置是非常简单的,并没有任何难度,但是中途因为网络问题还是出现了意外,所以在分析应用故障的时候,一定要注意外部的网络环境问题。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计1710字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中