Nginx實現HTTP強制跳轉HTTPS


Info

安裝NGINX的還沒來得及整理到這個博客,以后再來補,今天主要寫跳轉的實現,安裝通過yum,僅供測試,生產建議編譯;

環境

Centos7
ssl
nginx

結果

瀏覽器 -- 直接訪問80 -- 跳轉https ,

安裝nginx

不要在意為什么不編譯

yum -y install epel*
yum -y install nginx
nginx -v # 檢查是否安裝成功

生成證書(僅供測試用)


mkdir -pv /usr/local/src/test
cd /usr/local/src/test/
openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr
openssl rsa -in server.key -out server_nopwd.key # nginx使用的私鑰需要去除密碼口令
openssl x509 -req -days 365 -in server.csr -signkey server_nopwd.key -out server.crt

這時 test目錄下應該有四個文件

mark

修改NGINX配置文件

現在我們修改一下nginx.conf 因為是測試所以修改全局文件了

vim /etc/nginx/nginx.conf

這里需要啟用https的配置,

mark

現在我們啟動服務測試下,

systemctl stop firewalld ; systemctl restart nginx
netstat -tunlp | grep 443

啟動服務如果報錯請看清log 並且Double Check 你的配置文件,主要是證書名字和路徑
檢查端口是否開啟,
接下來 找一台可以跟server通信的客戶端 打開https://ip 測試。
可以打開網頁 並且是https 那么 https ---OK

http跳轉

這里實現的方式有很多,

這里介紹幾種

方式1 rewrite

mark

可以看出,這句話的意思是當你訪問http時,通過uri重寫的方式直接到https

1,2兩種寫法,都可以,選一個自己覺得好看的

但是,這是舊版本文檔里的寫法,

新版本的NGINX已經不推薦這種方式;

推薦方式為下面說的方法2

方法2 return

mark

這種方式也很清晰,訪問http時 ,return一個301 直接跳轉https,原理就是跟你打網頁 沒有這個頁面 404的效果類似

mark

August 7, 2017 1:01 AM

END


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM