記錄一次nginx升級,支援ipv4和ipv6訪問https
導讀 | 專案要求,需要讓現有網站專案支援https,並同時支援ipv6訪問,經過分析,現在nginx版本較老,所以決定升級nignx,並且同步配置https和ipv6。 |
伺服器網路環境需要支援ipv6,並且分配公網ipv6地址,ssl證照提前申請好.
wget
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模組:
修改配置檔案
把之前申請的https證照(crt檔案和key檔案)上傳到伺服器目錄
listen 443 ssl; listen [::]:443 ssl; ssl_certificate /usr/local/nginx/conf/conf.d/ssl/ ssl_certificate_key /usr/local/nginx/conf/conf.d/ssl/ 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
firewall-cmd --zone=public --add-port=443/tcp --permanent firewall-cmd --reload
./sbin/nginx -s reload
檢視443埠是否在監聽狀態
lsof -i:443
如圖所示,https協議已經在監聽狀態,並且分別支援ipv4和ipv6!
一切操作和流程都沒有問題,但是發現啟動後,網站只支援ipv4訪問htpps,ipv6訪問提示如下錯誤:
提示:
錯誤程式碼:SSL_ERROR_RX_RECORD_TOO_LONG
透過分析得出:
ipv4下能正常訪問https
ipv6下訪問https的流量是到了nginx伺服器
ipv6下測試443埠是通的
經過反覆分析以及錯誤程式碼提示能判斷出ipv6是證照沒有被有效識別到,導致ipv6無法使用https,但是ipv4下又能識別到證照,根據這一現象,能判斷出是ipv4和ipv6下網路流量的走向不同所致,經過和雲伺服器提供商溝通,發現原來是在ipv6下網際網路訪問443埠的流量被對映到了內網伺服器的80埠,所以ipv6下測試443埠是通的,但是又無法識別證照的問題。
總體上升級配置是非常簡單的,並沒有任何難度,但是中途因為網路問題還是出現了意外,所以在分析應用故障的時候,一定要注意外部的網路環境問題。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2788115/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- http 升級為 https 訪問HTTP
- ipv4和ipv6無網路訪問許可權 ipv4連線正常ipv6無網路訪問許可權訪問許可權
- 全站HTTPS升級系列(三)nginx配置全站HTTPSHTTPNginx
- nginx配置https協議訪問NginxHTTP協議
- nginx 專案配置 https 訪問NginxHTTP
- Nginx配置VUE專案Https訪問NginxVueHTTP
- 如何用nginx配置https加密訪問?NginxHTTP加密
- IPv4升級IPv6,IPv6優點之層次化的地址結構
- Nginx 配置二級虛擬目錄訪問 Laravel 重寫NginxLaravel
- nginx配置ssl實現https訪問 小白文NginxHTTP
- 為什麼要從IPv4協議升級到IPv6協議?協議
- 運維記錄1——解決在Nginx下部署CRA專案,二級目錄不能訪問的問題運維Nginx
- 阿里雲開源映象站支援IPv6訪問阿里
- 記錄一次手動升級達夢後DmAPService無法啟動問題
- Nginx配置正向代理支援HTTP和HTTPS轉發NginxHTTP
- 升級nginx以支援http2的方法NginxHTTP
- Kubernetes叢集中配置Ingress支援HTTPS訪問(一):cfsslHTTP
- ipv4和ipv6的區別
- IPv4到IPv6的轉換技術(上):IPv6和IPv4對比
- IPIDEA分享,為什麼要從IPv4協議升級到IPv6協議?Idea協議
- Nginx升級Nginx
- 提高首頁訪問速度 and 記錄一次Nuxt天坑UX
- 免費購買SSL證書,nginx無縫升級httpsNginxHTTP
- 升級Xcode 10遇到的問題做個記錄XCode
- Laravel 5.5.* 升級到 5.7.* 問題記錄Laravel
- 紀錄一次 sentry 升級歷史
- 記錄一次 Nginx 配置 proxy_pass 後 返回404問題Nginx
- 記一次mysql小版本升級MySql
- 記一次macOS Mojave升級GCCMacGC
- 花了100塊大洋搞懂 ipv6的使用者如何訪問ipv4 伺服器伺服器
- IPv4與IPv6
- nginx平滑升級Nginx
- Laravel 配置二級目錄訪問Laravel
- 記錄一次 LNMP 環境搭建到 Https 配置LNMPHTTP
- nginx 命令和訊號及平滑升級Nginx
- Linux上Nginx中開啟SSL模組,實現Https訪問LinuxNginxHTTP
- vue-cli3.0 升級記錄Vue
- collection v1.3.1升級記錄