在項(xiàng)目開發(fā)中,突然接到這樣一個(gè)需求,測(cè)試地址是http協(xié)議,線上地址是https協(xié)議,當(dāng)兩個(gè)環(huán)境來(lái)回切換的時(shí)候,可能就會(huì)導(dǎo)致輸入測(cè)試環(huán)境的瀏覽器地址多加了個(gè)s,而線上環(huán)境少加了s的問(wèn)題,為了用戶體驗(yàn)性更好,需要在客戶請(qǐng)求頁(yè)面的時(shí)候去判斷協(xié)議類型,當(dāng)協(xié)議類型不正確時(shí)替換成正確的協(xié)議,這個(gè)項(xiàng)目是通過(guò)next.js+express進(jìn)行開發(fā)的后臺(tái)系統(tǒng),所以瀏覽器重定向需要在服務(wù)端來(lái)做,也就會(huì)node層做處理,主要依靠express框架起的服務(wù),廢話不多說(shuō),以下:
express開啟的服務(wù)默認(rèn)是http協(xié)議的,如果要瀏覽器監(jiān)聽https,還需要安裝https包 以及需要ca 證書
一般來(lái)說(shuō) 我們沒必要花錢和時(shí)間去買一個(gè)ca機(jī)構(gòu)頒發(fā)證書 所以自己扮演CA機(jī)構(gòu),給自己頒發(fā)證書 步驟如下:
//生成CA私鑰
$ openssl genrsa -out ca.key 1024
//生成csr文件
$ openssl req -new -key ca.key -out ca.csr
//生成自簽名證書
$ openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt
//生成server.csr文件
$ openssl req -new -key server.key -outserver.csr
//生成帶有ca簽名的證書
$ openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt
創(chuàng)建https服務(wù)監(jiān)聽步驟如下:
