nginx如何正確配置https

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

在web應用開發中,為保證前端訪問后端服務器的安全,需要使用https連接,現在來聊一下如何在nginx中配置https.

nginx如何正確配置https

首先需要申請ssl證書。 在阿里云,騰訊云,華為云等云服務提供商的網站一般都會有免費ssl證書,申請一個即可;下面以華為云為例;
下載證書,會得到server.key和server.crt兩個文件;在與nginx.conf同目錄下創建ssl文件夾(名字任意), 把這兩個證書放入剛創建的文件夾中;
在nginx.conf的server中增加如下配置:

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為例:

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 注意: 如果還有其它應用在運行,開啟防火墻后,需要開通相應的端口,否則不能訪問。

80端口重定向至443端口的配置,在nginx.conf的server上面增加如下的server:

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

驗證配置是否正確:
執行 /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

更多Nginx相關技術文章,請訪問Nginx使用教程欄目進行學習!?

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享