本地搭建了前端項目,但奈何有時候需要https訪問的需求,所以做了一個嘗試在本地(windows環境)下配置nginx,最終的效果就是
搭建的時候,遇到兩個問題:
第一個是如果要在本地搭建https,必須需要證書,那么如何在本地生成證書。
第二個是證書生成了以后,nginx如何配置。
先說第一個問題
1、需要下載一個生成證書的軟件庫包openssl,下載安裝以后,會像npm或者是node一樣,可以使用命令,就類似於這樣
這里我的下載地址是http://gnuwin32.sourceforge.net/packages/openssl.htm,下載的是Complete package, except sources這個文件。
下載完了以后是一個exe文件需要安裝一下,需要注意的是,要記錄一下安裝的地址,因為安裝完了以后,需要進入安裝路徑下的bin文件夾,才能執行openssl命令。
2、運行命令,生成密鑰key
openssl genrsa -des3 -out f:/zhengshu/server.key 2048
這里的生成路徑可自行修改,回車后會被要求輸入密碼,需要記住下一步要用。這樣在相關的路徑下就生成了一個server.key的文件。
3、使用命令,去掉密碼(需要上一步的密碼)
openssl rsa -in f:/zhengshu/server.key -out f:/zhengshu/server.key
4、創建證書的申請文件
openssl req -new -key f:/zhengshu/server.key -out f:/zhengshu/server.csr
這是,會報一個錯誤 Unable to load config info from /usr/local/ssl/openssl.cnf
是因為openssl找不到對應配置文件,找了一些教程,發現這個配置文件可以引用git里面的這個文件,那么可以修改一下變成這樣
openssl req -new -key f:/zhengshu/server.key -out f:/zhengshu/server.csr -config "D:\software\git\Git\mingw32\ssl\openssl.cnf"
其中D:\software\git\Git\mingw32\ssl\openssl.cnf這個文件是我本地安裝git的路徑。
然后輸入國家、姓名.....一大堆,隨便寫就好
在嘗試的時候這里的mail地址有時候輸幾次都不好,可能是格式有校驗。
5、使用上面的證書申請文件和CA證書,來創建自己的證書
openssl x509 -req -days 3650 -in f:/zhengshu/server.csr -CA f:/zhengshu/ca.crt -CAkey server.key -CAcreateserial -out f:/zhengshu/server.crt
這樣,在文件里最終有兩個文件,一個是ca.crt一個是server.key,證書生成完成。
第二個問題是nginx配置,這個比較簡單,安裝nginx后,這里先記錄幾個命令
- start nginx 啟動服務器
- nginx -s stop 快速停止服務器
- nginx -s quit 完全正常停止
- nginx -s reload 重新加載配置文件,修改后執行該命令即可
nginx默認端口是80端口。配置文件在conf下的nginx.config進行配置,先啟動nginx,一樣需要進入到nginx目錄,執行啟動命令,能正常訪問localhost:80頁面后,把nginx.config文件里面的HTTPS server打開,並把以前的server注掉。
標紅的路徑,是我放證書的路徑,至此配置完成。
------------------------------------------------------------------------------分割線-------------------------------------------------------------------------
把前端項目放到nginx上,如下圖
其中root為文件存放的路徑,index.html為文件名,這個配置只輸入localhost:70,就可以跳轉到index.html