服務(wù)器nginx配置ssl并http重定向到https方式
Nginx 證書(shū)部署
首先去購(gòu)買(mǎi)證書(shū),以騰訊云為例子,購(gòu)買(mǎi)好了以后,下載了證書(shū),解壓獲得3個(gè)文件夾,分別是Apache、IIS、Nginx 服務(wù)器的證書(shū)文件
1 獲取證書(shū)
Nginx文件夾內(nèi)獲得SSL證書(shū)文件 1_www.xxx.com_bundle.crt 和私鑰文件 2_www.xxx.com.key,
2 證書(shū)安裝
將域名 www.xxx.com 的證書(shū)文件1_www.xxx.com_bundle.crt 、私鑰文件2_www.xxx.com.key保存到服務(wù)器上同一個(gè)目錄,例如/usr/local/nginx/conf目錄下。
修改Nginx根目錄下 conf/nginx.conf 文件如下:
server { listen 443; server_name www.xxx.com; #填寫(xiě)綁定證書(shū)的域名 ssl on; # nginx版本小于1.15.0 這個(gè)參數(shù)才有用 在1.15 這個(gè)參數(shù)被棄用了,直接上面 listen 443 ssl; 即可 2020年09月28日 ssl_certificate 1_www.xxx.com_bundle.crt; ssl_certificate_key 2_www.xxx.com.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照這個(gè)協(xié)議配置 這里不需要更改 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照這個(gè)套件配置 這里不需要更改 ssl_prefer_server_ciphers on; }
需要修改的就是上述紅字部分。
配置完成后,先用bin/nginx –t
來(lái)測(cè)試下配置是否有誤,正確無(wú)誤的話,
重啟nginx。 service nginx restart
然后使用 https://www.xxx.com
來(lái)訪問(wèn)。
當(dāng)然,有可能瀏覽器的https旁邊的綠色小鎖帶有黃色感嘆號(hào),那是因?yàn)楫?dāng)前網(wǎng)站還是有http的鏈接,最多的應(yīng)該是圖片,圖片的鏈接,就需要自己根據(jù)框架或者是直接改動(dòng)數(shù)據(jù)庫(kù)來(lái)操作了。
注:
配置文件參數(shù) | 說(shuō)明 |
---|---|
listen 443 | SSL訪問(wèn)端口號(hào)為443 |
ssl on | 啟用SSL功能 (1.15版本以上被廢棄) |
ssl_certificate | 證書(shū)文件 |
ssl_certificate_key | 私鑰文件 |
ssl_protocols | 使用的協(xié)議 |
ssl_ciphers | 配置加密套件,寫(xiě)法遵循openssl標(biāo)準(zhǔn) |
3 使用全站加密,http自動(dòng)跳轉(zhuǎn)https(可選)
對(duì)于用戶(hù)不知道網(wǎng)站可以進(jìn)行https訪問(wèn)的情況下,讓服務(wù)器自動(dòng)把http的請(qǐng)求重定向到https。
在服務(wù)器這邊的話配置的話,可以在頁(yè)面里加js腳本,也可以在后端程序里寫(xiě)重定向,當(dāng)然也可以在web服務(wù)器來(lái)實(shí)現(xiàn)跳轉(zhuǎn)。
Nginx是支持rewrite的(只要在編譯的時(shí)候沒(méi)有去掉pcre)
在http的server里增加
rewrite ^(.*) https://$host$1 permanent;
注意 permanent 可以換成 redirect 前者是永久重定向,后者是臨時(shí)重定向, permanent永久重定向 對(duì)于ssl證書(shū)過(guò)期后不再使用的情況會(huì)導(dǎo)致用戶(hù)無(wú)法訪問(wèn)
server { listen 80; server_name xxx.com www.xxx.com; rewrite ^(.*) https://$host$1 permanent; }
要新加一個(gè)server 不要寫(xiě)在listen 443里面,寫(xiě)在里面就一直是https重定向到https,進(jìn)入死循環(huán)。
這樣如果是http,就會(huì)跳轉(zhuǎn)到https, 比如訪問(wèn)xxx.com或者www.xxx.com 都會(huì)重定向到https://www.xxx.com
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
nginx 代理80端口轉(zhuǎn)443端口的實(shí)現(xiàn)
這篇文章主要介紹了nginx 代理80端口轉(zhuǎn)443端口的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09nginx支持帶下劃線的header實(shí)現(xiàn)
如果header name中包含下劃線,則忽略掉,本文主要介紹了nginx支持帶下劃線的header實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-08-08簡(jiǎn)單談?wù)凬ginx基礎(chǔ)知識(shí)入門(mén)
Nginx(engine x)是一個(gè)高性能的HTTP服務(wù)器(其實(shí)不止HTTP服務(wù)器),一般主要用作負(fù)載均衡和反向代理,今天我們來(lái)簡(jiǎn)單學(xué)習(xí)下他的基礎(chǔ)配置知識(shí)2017-08-08Apache Nginx 禁止目錄執(zhí)行PHP腳本文件的方法
這篇文章主要介紹了Apache Nginx 禁止目錄執(zhí)行PHP腳本文件的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06nginx反向代理下的長(zhǎng)連接實(shí)現(xiàn)
本文主要介紹了Nginx反向代理下的長(zhǎng)連接實(shí)現(xiàn),包括客戶(hù)端到Nginx和Nginx到后端服務(wù)器之間的長(zhǎng)連接設(shè)置,具有一定的參考價(jià)值,感興趣的可以了解一下2024-11-11nginx 502 Bad Gateway 錯(cuò)誤解決辦法
一些運(yùn)行在Nginx上的網(wǎng)站有時(shí)候會(huì)出現(xiàn)“502 Bad Gateway”錯(cuò)誤,有些時(shí)候甚至頻繁的出現(xiàn)。以下是小編搜集整理的一些Nginx 502錯(cuò)誤的排查方法,供參考2013-10-10