CentOS 7 配置nginx並默認強制使用https對http進行跳轉

1.安裝nginxhtml

yum install nginx

2.啓動nginx服務node

service nginx start

3.開啓防火牆80端口,雲服務器和本地虛擬服務器各有不一樣,再也不贅述。nginx

4.訪問你的域名,出現nginx頁面,成功。web

關於https,首先須要下載ssl證書,本人使用的騰訊雲服務器,域名也是騰訊上買的域名服務,因此直接在騰訊雲申請了ssl dv證書。服務器

還有一種方式經過openssl本身生成ssl證書,我的沒嘗試過,網上教程頗多。session

5.ssl證書申請
這裏建議使用騰訊雲申請免費ssl證書,一年免費,單域名模式下。固然若是有預算直接買泛域名的更好。運維

注:能夠申請多個單域名模式證書,好比,www.yourdomain.com,    blog.yourdomain.com,  這樣就能夠爲二級域名設置https訪問。dom

大約半小時,騰訊就能審覈經過。tcp

參照騰訊的說明驗證經過後能夠下載證書到本地,目錄以下:spa

E:\DOOFEETECH\00.公司\IT運維\www.yourdomain.COM
│  www.yourdomain.com.csr
│
├─Apache
│      1_root_bundle.crt
│      2_www.yourdomain.com.crt
│      3_www.yourdomain.com.key
│
├─IIS
│      www.yourdomain.com.pfx
│
├─Nginx
│      1_www.yourdomain.com_bundle.crt
│      2_www.yourdomain.com.key
│
└─Tomcat
        www.yourdomain.com.jks

各類主流web服務器的都提供了,這裏咱們用nginx的。

6.將ssl證書上傳至服務器,我的單獨創建了ssl文件目錄。

7.配置nginx.conf

我忘了nginx默認的配置文件在哪一個位置,使用以下命令
nginx -t

發現默認的nginx.conf 在/etc/nginx/nginx.con

配置以下:

首先修改對80端口的監聽

server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;                           
        #通過試驗發現,在server_name裏面能夠不指定域名,兩種方式都OK
        #server_name www.yourdomain.com;          
        #rewrite     ^   https://$host$request_uri? permanent;
        rewrite ^(.*)$  https://$host$1 permanent; 
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

開啓防火牆443端口,並啓用對nginx中對443端口的監聽

server {
        listen       443 ssl http2 default_server;
        listen       [::]:443 ssl http2 default_server;
        #server_name  _;
        server_name  www.yourdomain.com;
        root         /usr/share/nginx/html;

        ssl_certificate "/home/ssl/keys/1_www.yourdomain.com_bundle.crt";
        ssl_certificate_key "/home/ssl/keys/2_www.yourdomain.com.key";
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  10m;
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;
    
        

#
#        # Load configuration files for the default server block.
#        include /etc/nginx/default.d/*.conf;
#
        location / {
             
             tcp_nodelay on;
             proxy_set_header Host $host;
             proxy_set_header X-Real-IP $remote_addr;
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
#
#        error_page 404 /404.html;
#            location = /40x.html {
#        }
#
#        error_page 500 502 503 504 /50x.html;
#            location = /50x.html {
#        }
    }

8.重啓nginx或者從新加載配置

重啓 service nginx restart

重載 nginx -s reload

 

至此,使用http訪問你的域名,會自動跳轉到https。

 

參考:

https://www.jianshu.com/p/c0d2e5e77b0c

https://www.jianshu.com/p/9523d888cf77

https://www.jianshu.com/p/2a26539a9818

https://blog.csdn.net/h330531987/article/details/81481426

https://blog.csdn.net/zf5250/article/details/80429795

相關文章
相關標籤/搜索