在nginx中配置https

今天聊一下如何在nginx中配置https前端

在web應用開發中,爲保證前端訪問後端服務器的安全,須要使用https鏈接,如今來聊一下如何在nginx中配置https.python

1.首先須要申請ssl證書。 在阿里雲,騰訊雲,華爲雲等雲服務提供商的網站通常都會有免費ssl證書,申請一個便可;下面以華爲云爲例;
2.下載證書,會獲得server.key和server.crt兩個文件;在與nginx.conf同目錄下建立ssl文件夾(名字任意), 把這兩個證書放入剛建立的文件夾中;
3.在nginx.conf的server中增長以下配置:nginx

server {
    listen                        443;
    server_name                   www.test.com # 域名            
    ssl                           on;  # 啓用ssl功能            
    ssl_certificate               ssl/server.crt;             
    ssl_certificate_key           ssl/server.key;            
    ssl_session_timeout           5m;        # 客戶端能夠重用會話參數的時間
    ssl_protocols                 TLSv1 TLSv1.1 TLSv1.2;    # 使用的協議        
    ssl_ciphers                   ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;    # 配置加密套件    
    ssl_prefer_server_ciphers     on;

       ...    
}

在配置443端口以前,須要先打開防火牆和443端口,以Centos7爲例:web

1) 開啓防火牆:     systemctl start firewalld
     查看防火牆狀態:    systemctl status firewalld    
2) 查看開通了哪些端口: firewall-cmd --list-ports 
3) 開通443端口: firewall-cmd --zone=public --add-port=443/tcp --permanent 
4) 從新加載下防火牆配置: firewall-cmd --reload
注意: 若是還有其它應用在運行,開啓防火牆後,須要開通相應的端口,不然不能訪問。

4.80端口重定向至443端口的配置,在nginx.conf的server上面增長以下的server:後端

server {
    listen 80;
    server_name www.test.com;
    rewrite ^(.*)$ https://www.test.com$1 permanent; 
}

5.驗證配置是否正確:
執行 /usr/sbin/nginx -t
返回以下信息則表示配置成功:安全

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

6.重啓nginx服務器

systemctl restart nginx

最後推薦廖雪峯老師的在nginx中配置https的例子: nginx中配置httpssession

相關文章
相關標籤/搜索