下面把“<span style="color:red">80</span> 端口 vs <span style="color:red">443</span> 端口”的本質差異、標準用法與落地方案一次講透(含可直接執行的命令與解釋)🔒🚀
一、核心結論(先給答案)
- <span style="color:red">80</span>:用於 <span style="color:red">HTTP(明文)</span>,不加密,適合僅做跳轉或極少數內網低敏場景。
- <span style="color:red">443</span>:用於 <span style="color:red">HTTPS(TLS 加密)</span>,支持 <span style="color:red">HTTP/2</span> 與 <span style="color:red">HTTP/3(QUIC)</span>,是一切對外業務的默認標準。
- 戰略建議:統一以 <span style="color:red">443</span> 為主,<span style="color:red">80</span> 只做 301 跳轉→HTTPS,並啓用 <span style="color:red">HSTS</span>、<span style="color:red">ALPN</span>、<span style="color:red">OCSP Stapling</span> 等現代特性。
二、對比速覽(可直接粘貼到 vditor/WordPress)
| 維度 | <span style="color:red">80</span>(HTTP) | <span style="color:red">443</span>(HTTPS) |
|---|---|---|
| 傳輸安全 | 明文傳輸,易被竊聽與篡改 | <span style="color:red">TLS</span> 加密與身份認證,抗竊聽/篡改 |
| 協議棧 | TCP + HTTP/1.1 為主 | TCP+<span style="color:red">TLS</span>(HTTP/2),或 <span style="color:red">UDP+QUIC(HTTP/3)</span> |
| 性能 | 少一次握手,但無壓縮複用優化 | <span style="color:red">HTTP/2 多路複用</span>、頭部壓縮;<span style="color:red">TLS 1.3</span>握手更快,支持0-RTT(謹慎啓用) |
| 證書 | 無 | 需要數字證書(可用 ACME 自動化),支持 <span style="color:red">SNI</span> |
| 瀏覽器策略 | 越來越多功能受限 | 默認優待:更完整的特性與能力 |
| 典型用途 | 歷史站點/內網、臨時跳轉 | 公網標準、支付/登錄/接口、移動端與小程序 |
| 運維規範 | 不建議直暴露業務 | 統一入口;強制 <span style="color:red">80→443</span> 跳轉;<span style="color:red">HSTS</span> |
三、為什麼 443 已成默認?
- 安全基線:<span style="color:red">TLS 1.3</span> 成熟穩定,握手更少、性能更好。
- 協議演進:<span style="color:red">HTTP/2</span> 與 <span style="color:red">HTTP/3(QUIC)</span> 的多路複用與更優擁塞控制在複雜網絡下更穩。
- 產品體驗:現代瀏覽器逐步“HTTPS-first”,非加密連接被弱化提醒。
- 合規與信任:證書為站點身份背書,利於數據合規與用户信任。🙂
四、最小可行落地(命令/配置 + 逐條解釋)⚙️
1)查看 80/443 監聽
ss -lntp | egrep ':80|:443'
解釋:ss 列出監聽中的 TCP 端口;篩出 :80 與 :443。若無輸出,説明服務未在相應端口監聽。
2)開放防火牆
Ubuntu(UFW)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload
解釋:分別放行 <span style="color:red">80/443</span> 的 TCP 流量;reload 使規則生效。
RHEL/CentOS(firewalld)
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
解釋:以“服務”維度一次性放行 <span style="color:red">HTTP/HTTPS</span>;--permanent 持久化保存,--reload 立即生效。
3)Nginx 標準化配置(80 跳 443,443 啓用 TLS)
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2; # HTTP/2
# listen 443 quic reuseport; # 如啓用 HTTP/3,再配合 http3 on;
server_name example.com;
ssl_certificate /etc/ssl/fullchain.pem;
ssl_certificate_key /etc/ssl/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3; # 以 TLS 1.3 為主,保留 1.2 兼容
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_stapling on; # OCSP Stapling
ssl_stapling_verify on;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
解釋:
- 上段
server:<span style="color:red">80</span> 僅做 301 跳轉 到 HTTPS。 - 下段
server:啓用 <span style="color:red">TLS</span> 與 <span style="color:red">HTTP/2</span>;證書路徑替換為你的實際文件;HSTS強制瀏覽器後續僅走 <span style="color:red">HTTPS</span>;OCSP Stapling降低證書狀態查詢時延。若要 <span style="color:red">HTTP/3</span>,需編譯/啓用支持並開放 UDP/443。
4)驗證 TLS/ALPN/HTTP2
openssl s_client -connect example.com:443 -servername example.com -alpn h2 -tls1_3 </dev/null 2>/dev/null | egrep 'Protocol|ALPN'
解釋:用 openssl 主動發起 TLS 連接,指明 <span style="color:red">SNI</span> 與 <span style="color:red">ALPN=h2</span>;輸出中應見 Protocol : TLSv1.3 與 ALPN protocol: h2,表明走的是 <span style="color:red">TLS 1.3</span> 與 HTTP/2。🧪
五、實施清單(務實版)
- 統一入口:公網僅開放 <span style="color:red">443</span>,<span style="color:red">80</span> 只做 301。
- 證書自動化:使用 ACME 自動續簽,最少 60 天輪轉一次。
- 協議優選:開啓 <span style="color:red">TLS 1.3</span> 與 <span style="color:red">HTTP/2</span>,按需評估 <span style="color:red">HTTP/3(QUIC)</span>(移動與弱網收益明顯)。
- 安全選項:強制 <span style="color:red">HSTS</span>,啓用 <span style="color:red">OCSP Stapling</span>、合理 Cipher 套件;保留 <span style="color:red">TLS 1.2</span> 以兼容老端。
- 觀測治理:在接入層記錄握手耗時、協議分佈(h2/h3)、失敗原因碼,納入 SLO。
六、常見誤區(快速避坑)🙂
- “HTTP 更快所以用 80”:過時。<span style="color:red">TLS 1.3</span> + <span style="color:red">HTTP/2/3</span> 實測更穩更快,且安全邊際高。
- “內網就不用 HTTPS”:只要跨邊界或多團隊協作,傳輸加密與身份校驗仍是剛需。
- “開了 443 就萬事大吉”:別忘了 <span style="color:red">HSTS</span>、<span style="color:red">SNI</span>、<span style="color:red">ALPN</span> 與證書續簽可觀測性。
結論:面向 2025 的可持續架構,以 <span style="color:red">443</span> 為主的全站 HTTPS 已是基礎設施共識;<span style="color:red">80</span> 端口僅承擔“引導安全連接”的中轉角色。對客户與業務而言,這既是安全紅線,也是體驗與口碑的底座。