Nginx配置Https安全認證的實現

1、Http與Https的區別

HTTP:是互聯網上應用最為廣泛的一種網絡協議,是一個客戶端和服務器端請求和應答的標準(TCP),用於從WWW服務器傳輸超文本到本地瀏覽器的傳輸協議,它可以使瀏覽器更加高效,使網絡傳輸減少。

HTTPS:是以安全為目標的HTTP通道,簡單講是HTTP的安全版,即HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。HTTPS協議的主要作用可以分為兩種:一種是建立一個信息安全通道,來保證數據傳輸的安全;另一種就是確認網站的真實性。

HTTPS和HTTP的區別主要如下:

1、https協議需要到ca申請證書,一般免費證書較少,因而需要一定費用。
2、http是超文本傳輸協議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協議。
3、http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,後者是443。
4、http的連接很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全。

1)http訪問:未認證在部分瀏覽器上訪問是會提示不安全的,有安全隱患

image-20210523181111096

2)https訪問:認證後

image-20210523181224421

Nginx配置Https

 一、安裝nginx的SSL模塊

1、配置ssl證書前,要確保你的nginx安裝瞭ssl模塊,一般情況下自己安裝的nginx都是不存在ssl模塊的。

檢查自己的nginx是否安裝瞭ssl模塊

cd nginx的安裝目錄sbin下輸入

./nginx -V

image-20210523181704656

如果有出現紅框中的信息,證明有安裝。

2、沒有安裝ssl模塊的情況

進入你的nginx解壓後的目錄(不是nginx安裝目錄),輸入

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

接下來執行

make  #切記不要執行make install 否則會重新安裝nginx

3、進入objs文件夾,文件夾中存在nginx文件,替換掉sbin下的nginx

#如果開啟瞭nginx先進入sbin中停掉nginx服務
./nginx -s stop #停止nginx服務
# cp 壓縮後的nginx路徑(你自己的)  安裝的nginx路徑(你自己的) 
cp /root/nginx/objs/nginx /usr/local/ngin/sbin

4、成功之後,進入nginx安裝目錄,查看ssl是否安裝成功

./nginx -V
#權限不足可執行給nginx權限
chmod 111 nginx

二、配置SSL證書

阿裡雲可申請免費的ssl證書,具體可百度(證書一般是pem和key文件)

1、將證書上傳到一個文件夾中(自定義)

mkdir -p /nginx/card-key-pem 

image-20210523184201035

2、配置ssl,進入nginx安裝目錄中的conf文件中

cd /usr/local/nginx/conf
vim nginx.conf
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    
server {
        listen       443;  #監聽443端口
        server_name  www.qingfenginn.top; 	#你的域名

        ssl on;		#開啟ssl
        ssl_certificate /root/nginx/card-key-pem/5386933_www.qingfenginn.top.pem;	#你上傳的ssl證書的pem文件路徑
        ssl_certificate_key /root/nginx/card-key-pem/5386933_www.qingfenginn.top.key; 	#你上傳的ssl證書的key文件路徑

        location / {	#訪問路徑
           #反向代理到你的項目 http://公網地址:端口
           proxy_pass http://www.qingfenginn.top:81; 
        }
 }


server {
        listen 80;	#監聽80端口
        server_name www.qingfenginn.top;
		#將請求轉成https
        rewrite ^(.*)$ https://$host$1 permanent; 
    }
}

註意:配置完後,nginx會同時監聽443端口和80端口,443端口需要在安全組開發端口

3、重啟nginx,使配置生效

進入sbin目錄

先校驗一下配置文件是否正確

./nginx -t

image-20210523185524664

在啟動nginx

./nginx -s reload //重啟
./nginx -s stop  //停止
./nginx			//啟動

之後就可以用你的域名訪問瞭

到此這篇關於Nginx配置Https安全認證的實現的文章就介紹到這瞭,更多相關Nginx配置Https認證內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: