利用nginx + node在阿里云部署https的步驟詳解
緣起
最近在寫(xiě)node+mongodb版本的靈犀微商城,所以免不了要自己去部署自己的https證書(shū)到阿里服務(wù)器,下面將實(shí)現(xiàn)的過(guò)程完整的給大家總結(jié)下,話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧。
HTTPS和HTTP的區(qū)別主要如下:
1、https協(xié)議需要到ca申請(qǐng)證書(shū),一般免費(fèi)證書(shū)較少,因而需要一定費(fèi)用。
2、http是超文本傳輸協(xié)議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協(xié)議。
3、http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443。
4、http的連接很簡(jiǎn)單,是無(wú)狀態(tài)的;HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議,比http協(xié)議安全。
申請(qǐng)
等了2天才拿到免費(fèi)的https證書(shū),在阿里一直是顯示售罄,難道最近https普遍起來(lái)導(dǎo)致供不應(yīng)求了。
部署
上傳了fileauth.txt到指定的目錄下,幾分鐘后,就審核通過(guò)了,期間并沒(méi)有審核電話打進(jìn)來(lái)。操作部署阿里給出很詳盡,復(fù)制過(guò)來(lái)就可以,不過(guò)要注意要將cert文件夾放在conf下,而不是說(shuō)明上所說(shuō)的nginx根目錄。當(dāng)你按阿里原原本本地操作,將看到這個(gè)報(bào)錯(cuò),fopen:No such file or directory:fopen('/usr/local/nginx/conf/cert/214389510580391.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file)
,也就明白是cert存在目錄的問(wèn)題。
node反向代理
location / { proxy_pass http://127.0.0.1:4001; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
node還是照舊跑,不關(guān)心https還是http,它由nginx完成。第1個(gè)proxy_pass是反向代理,后面3個(gè)proxy_set_header是將請(qǐng)求完全由mall.it577.net接管,不加上雖然能被前端請(qǐng)求,但是req.originUrl仍然還是會(huì)解析為http://127.0.0.1:4001,這就影響到了微信支付回調(diào)notify_url的解耦了,于是加上這3行。
結(jié)果
從地址欄看到已經(jīng)支持https了。
坑
以上的過(guò)程是很簡(jiǎn)單,基本都能配置上,說(shuō)下我遇到的坑。因?yàn)槲野⒗镱A(yù)裝nginx并不帶https模塊,所以要自己手動(dòng)下載安裝包再重新編譯,最后復(fù)制新編譯出來(lái)的nginx執(zhí)行文件替換并重啟服務(wù)。
報(bào)錯(cuò),提示找不到ssl模塊
nginx: [emerg] unknown directive "ssl" in /usr/local/nginx/conf/nginx.conf:123
下載相應(yīng)版本的ngix壓縮包
wget http://nginx.org/download/nginx-1.12.1.tar.gz
解壓
tar zxvf nginx-1.12.1.tar.gz
帶參編譯得到ssl模塊
./configure --with-http_ssl_module make
停止nginx
/usr/local/nginx/sbin/nginx -s stop
當(dāng)然可以kill進(jìn)程,網(wǎng)上搜到的是讓kill的3種方法
替換舊nginx
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak cp ./objs/nginx /usr/local/nginx/sbin/
重啟nginx并重新加載conf配置文件
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf /usr/local/nginx/sbin/nginx -s reload
上述踩坑參考了文章http://www.dbjr.com.cn/article/130894.htm,感謝前人栽樹(shù)。
這時(shí)再在瀏覽器訪問(wèn)就看到上面給出的截圖效果了,大功告成。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
- Nginx配置SSL證書(shū)部署HTTPS網(wǎng)站的方法(頒發(fā)證書(shū))
- Nginx部署https網(wǎng)站并配置地址重寫(xiě)的步驟詳解
- nginx通過(guò)https部署vue項(xiàng)目的完整步驟
- Nginx?部署的虛擬主機(jī)使用?Let's?Encrypt?加密?https的方法
- 在nginx中部署https服務(wù)的詳細(xì)步驟
- ubuntu服務(wù)器部署gitlab docker并配置nginx反向代理https訪問(wèn)的過(guò)程解析
- nginx部署https網(wǎng)站的實(shí)現(xiàn)步驟(親測(cè))
相關(guān)文章
Express.js 全局錯(cuò)誤處理實(shí)現(xiàn)
本文主要介紹了Express.js 全局錯(cuò)誤處理實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06nodejs?express實(shí)現(xiàn)中間件
這篇文章主要為大家介紹了nodejs?express實(shí)現(xiàn)中間件實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10Node.js?中的?RSA?加密、解密、簽名與驗(yàn)證
RSA加密算法因其非對(duì)稱(chēng)的特性,廣泛應(yīng)用于數(shù)據(jù)的加密、解密、簽名和驗(yàn)證等安全領(lǐng)域,本文主要介紹了Node.js?中的?RSA?加密、解密、簽名與驗(yàn)證,具有一定的參考價(jià)值,感興趣的可以了解一下2024-08-08node中modules.exports與exports導(dǎo)出的區(qū)別
這篇文章主要介紹了node中modules.exports與exports導(dǎo)出的區(qū)別,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06nodejs 使用nodejs-websocket模塊實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)實(shí)時(shí)通訊
這篇文章主要介紹了nodejs 使用nodejs-websocket模塊實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)實(shí)時(shí)通訊的實(shí)例代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-11-11使用node搭建自動(dòng)發(fā)圖文微博機(jī)器人的方法
這篇文章主要介紹了使用node搭建自動(dòng)發(fā)圖文微博機(jī)器人的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03NodeJs版本過(guò)高無(wú)法啟動(dòng)Vue項(xiàng)目報(bào)錯(cuò)的幾種解決方法
在開(kāi)發(fā)vue項(xiàng)目時(shí),我們通常使用nodejs作為項(xiàng)目的運(yùn)行環(huán)境,但是有時(shí)候,由于nodejs版本過(guò)高,可能會(huì)導(dǎo)致vue項(xiàng)目啟動(dòng)報(bào)錯(cuò),這篇文章主要給大家介紹了關(guān)于NodeJs版本過(guò)高無(wú)法啟動(dòng)Vue項(xiàng)目報(bào)錯(cuò)的幾種解決方法,需要的朋友可以參考下2023-12-12Node.js中使用Buffer編碼、解碼二進(jìn)制數(shù)據(jù)詳解
這篇文章主要介紹了Node.js中使用Buffer編碼、解碼二進(jìn)制數(shù)據(jù)詳解,Buffer支持ascii、utf8、ucs2、base64等編碼格式,需要的朋友可以參考下2014-08-08nodejs結(jié)合socket.io實(shí)現(xiàn)websocket通信功能的方法
這篇文章主要介紹了nodejs結(jié)合socket.io實(shí)現(xiàn)websocket通信功能的方法,結(jié)合實(shí)例形式分析了nodejs結(jié)合socket.io實(shí)現(xiàn)websocket通信的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2018-01-01