在web應用開發中,為保證前端訪問后端服務器的安全,需要使用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