前置條件:
在配置https之前請確保下面的步驟已經完成
服務器已經安裝nginx並且通過http可以正常訪問
不會安裝nginx的可以參考下這篇文章:Linux安裝nginx(超詳細)
擁有ssl證書,沒有的可以去阿里購買或者免費申請一年
如果以上條件都滿足了,接下來開始配置https
第一步:Nginx的ssl模塊安裝
在配置ssl證書之前,要確保你的nginx已經安裝了ssl模塊,一般情況下自己安裝的nginx都是不存在ssl模塊的。
這里先檢查下自己是否存在ssl模塊:
進入到你的nginx安裝目錄下面,我的目錄是在(/usr/local/nginx),如果你的nginx安裝步驟和上面的文章一致的話,那你的目錄和我應該是一致的
進入到目錄的sbin目錄下,輸入
#注意這里是大寫的V,小寫的只顯示版本號
./nginx -V
如果出現 (configure arguments: --with-http_ssl_module), 則已安裝(下面的步驟可以跳過,直接進行第五步)。
一般情況下都是不存在ssl模塊的,接下來進入到你的解壓縮后的nginx目錄,注意這里不是nginx安裝目錄,是解壓縮后的目錄,我的是在(/root/nginx),進入目錄后,輸入
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
接下來執行
make
#切記不要執行make install,否則會重新安裝nginx
上述操作執行完成以后,你的目錄下會出現objs文件夾,文件夾內存在nginx文件,如圖:
接下來使用新的nginx文件替換掉之前安裝目錄sbin下的nginx,注意這里的替換的時候可以先將之前的文件備份下,停掉nginx服務
./nginx -s stop #停止nginx服務
#替換之前的nginx
cp /root/nginx/objs/nginx /usr/local/nginx/sbin
成功之后,進入到nginx安裝目錄下,查看ssl時候成功
#注意這里是大寫的V,小寫的只顯示版本號 ./nginx -V #可以看到這里出現了configure arguments: --with-http_ssl_module 證明已經安裝成功
提示:這里替換后在執行 -V命令如果提示權限不足,先給這個nginx文件提升下權限
我是用的是finalshell連接工具,直接右鍵就可以修改權限了,當然,也可以通過指令修改,如下:
chmod 111 nginx
第二步:配置ssl證書
解壓縮下載好的證書(證書一般是pem文件和key文件,這里名字可以隨便改)
將下載好的證書上上傳到服務器,我將證書放在了root目錄下的card文件夾
解壓縮下載好的證書(證書一般是pem文件和key文件,這里名字可以隨便改)
將下載好的證書上上傳到服務器,我將證書放在了root目錄下的card文件夾
第三步:進行nginx.conf配置
進入nginx.conf文件下
cd /usr/locla/nginx/conf
#修改nginx.conf文件
vim nginx.conf
打開之后文件內容如圖
可以將沒用的東西都刪除掉,刪除的時候注意,括號要對應起來。
然后進行配置,輸入:
http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { #監聽443端口 listen 443; #你的域名 server_name huiblog.top; ssl on; #ssl證書的pem文件路徑 ssl_certificate /root/card/huiblog.top.pem; #ssl證書的key文件路徑 ssl_certificate_key /root/card/huiblog.top.key; location / { proxy_pass http://公網地址:項目端口號; } } server { listen 80; server_name huiblog.top; #將請求轉成https rewrite ^(.*)$ https://$host$1 permanent; } }
注意:這里需要在安全組中開放443端口。
第四步:重啟nginx
ok,如果上述步驟都完成了,沒有問題,接下來只需要重啟nginx服務即可。
進入sbin目錄下,輸入
./nginx -s reload
./nginx -s stop
./nginx
無提示信息的話,就大功告成了。
ok,配置https到此就結束了,不足之處還望在評論區指出