相信大家在現有專案里都會通過https訪問,我們今天得教程就是通過配置nginx實作https訪問,
nginx配置HTTPS前置條件
服務器上已經安裝nginx服務,已經具備http訪問;
nginx服務器是否已經安裝ssl模塊得支持;
是否已經擁有ssl證書,如果沒有可以去阿里云或者騰訊云免費申請;
1,證書申請
證書申請前往阿里云SSL證書申請,選擇免費證書申請即可

2 nginx SSL模塊是否支持
查看nginx是否安裝http_ssl_module模塊
./nginx -V

如果看到我上圖示記得 configure arguments: --with-http_ssl_module, 則已安裝(可以直接跳過nginx安裝ssl支持步驟,進入 nginx.conf 配置),
3,nginx安裝
3.1 nginx官網地址
下載地址:http://nginx.org/en/download.html
這里下載nginx-1.18.0穩定版tar.gz
3.2 下載tar包到服務器目錄
cd /home/somnus
wget http://nginx.org/download/nginx-1.18.0.tar.gz
3.3 解壓安裝包
tar -zxvf nginx-1.18.0.tar.gz
3.4 配置ssl模塊
cd nginx-1.18.0
./configure --prefix=/usr/local/nginx --with-http_ssl_module
我們只需要執行以上命令即可,由于我服務器上還有其他模塊依賴
3.5 接下來執行命令編譯
使用 make 命令編譯(使用make install會重新安裝nginx),此時當前目錄會出現 objs 檔案夾,用新的 nginx 檔案覆寫當前的 nginx 檔案,

3.6 命令拷貝復制
cp ./objs/nginx /usr/local/nginx/sbin/
3.7 再次查看安裝的模塊(configure arguments: --with-http_ssl_module說明ssl模塊已安裝),
./nginx -V
nginx version: nginx/1.18.0
…
configure arguments: –with-http_ssl_module
4. ssl 證書部署
下載申請好的 ssl 證書檔案壓縮包到本地并解壓(這里是用的 pem 與 key 檔案,檔案名可以更改),
在 nginx 目錄新建 cert 檔案夾存放證書檔案,
cd /usr/local/nginx
mkdir cert
將我們申請得這兩個檔案上傳至服務器的 cert 目錄里,

4.1. nginx.conf 配置
編輯 /usr/local/nginx/conf/nginx.conf 組態檔:
配置 https server,
注釋掉之前的 http server 配置,新增 https server:
server {
listen 443 ssl;
server_name somnus.test.com;
ssl_certificate ../cert/somnus.test.com.pem;
ssl_certificate_key ../cert/somnus.test.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
......
}
4.2 將 http 重定向 https
server {
listen 80;
server_name somnus.test.com;
#將請求轉成https
rewrite ^(.*)$ https://$host$1 permanent;
}
4.5 重啟 nginx
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
如果 80 埠被占用,可以通過kill命令來進行結束行程:
5 查看埠使用
netstat -lntp
執行看到以下結果就說明我們成功了
[root@iZi5u1azluu464tfbesf3aZ conf]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3322/nginx: master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2310/sshd
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 3322/nginx: master
5.1 結束nginx埠行程
5.1 查看nginx 行程命令
ps aux | grep nginx

5.2 執行結束命令
kill -9 3322
5.1 重啟 nginx :
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
以上就是我們今天的教程,如果本文對你有所幫助,歡迎關注點贊,分享給您身邊的朋友,您的鼓勵就是對我的最大動力,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/335504.html
標籤:其他
