nginx配置HTTPS前置條件
1、服務(wù)器上已經(jīng)安裝nginx,已經(jīng)配置http訪問
2、nginx服務(wù)器已經(jīng)安裝ssl模塊
3、已經(jīng)擁有ssl證書,這需要你有一個(gè)域名,并且申請(qǐng)了證書(免費(fèi)的)
4、前端訪問配置了https,則服務(wù)API也是https,所以后端也要配置https。
我這里參考了一個(gè)網(wǎng)友的文章,有興趣可以直達(dá):手把手教你Nginx 配置 HTTPS 完整過程_somnus_小凱的博客-CSDN博客_nginx配置https?。
不建議只一端配置https,另一端不配置,因?yàn)闉g覽器會(huì)攔截并給你一個(gè)白眼:mixed-content
。大意是要你:?前端https頁(yè)面中不能請(qǐng)求 http的請(qǐng)求。必須將http 轉(zhuǎn)為https的請(qǐng)求。即 nginx 配置反向代理也必須是https的。
后端的https 配置我將在后面的文章中呈現(xiàn),可"搜索"本站 https。
這里略去前奏,直接上。
主要分為幾步:
1、配置https server。
2、配置http重定向。
3、重啟nginx,查看端口情況,訪問頁(yè)面。
1、配置https server。
server {
listen 443 ssl; # 443端口
server_name www.wffw88.top; # 你的域名
# 你的域名下申請(qǐng)的證書
ssl_certificate ../cert/www.wffw88.top_bundle.crt;
ssl_certificate_key ../cert/www.wffw88.top.key;
# 默認(rèn)按此配置
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
# 默認(rèn)按此配置
ssl_protocols TLSv1.2 TLSv1.3;
# 默認(rèn)按此配置,配置加密套件,寫法遵循 openssl 標(biāo)準(zhǔn)。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
# 這里是請(qǐng)求后臺(tái)的API,我這里以 /koa 開頭
location ^~ /koa {
# 反向代理 服務(wù)
proxy_pass https://wffwkoa;
}
location / {
root html; # 這里是靜態(tài)文件目錄
index index.html index.htm; # 這里是入口文件名稱
# 這里是 vue-router histoey 模式的默認(rèn)添加
try_files $uri $uri/ /index.html;
}
# error config
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
如果你暫時(shí)還不能配置后端的https,則可以在nginx https server 的 localtion /api{……}中添加請(qǐng)求頭:?add_header Content-Security-Policy upgrade-insecure-requests;
?不過我試了一下,chrome 瀏覽器還是報(bào)錯(cuò),沒法訪問。
上面提到的?proxy_pass https://wffwkoa;
?對(duì)應(yīng)的是服務(wù)器地址,我這里前端后端都配置在一個(gè)服務(wù)器上,所以使用 回環(huán)地址,我的后端服務(wù)https監(jiān)聽的是444端口,所以這里配置如下:
upstream wffwkoa {
server 127.0.0.1:444;
}
2、配置http重定向。
我們需要將http的請(qǐng)求代理到https上,也就是永久重定向 301。我在網(wǎng)上查到兩種跳轉(zhuǎn)方式,英雄美女請(qǐng)自選。
server {
listen 80;
server_name www.wffw88.top;
# 轉(zhuǎn)到 https
# rewrite ^(.*)$ https://$host$1 permanent;
return 301 https://$host$request_uri;
}
3、重啟nginx,查看端口情況,訪問頁(yè)面。
配置好了,可以重啟一下了
/usr/local/nginx/sbin/nginx -s reload
查看端口:
文章來源:http://www.zghlxwxcb.cn/news/detail-402655.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-402655.html
到了這里,關(guān)于Nginx 配置 HTTPS 過程(+反向代理)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!