最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Nginx實(shí)現(xiàn)HTTPS網(wǎng)站設(shè)置的步驟

 更新時(shí)間:2021年08月23日 09:44:21   作者:愿許浪盡天涯  
本文主要介紹了Nginx實(shí)現(xiàn)HTTPS網(wǎng)站設(shè)置的步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

前言:

首先在這里簡(jiǎn)單說(shuō)一下為什么現(xiàn)在都在使用 HTTPS 協(xié)議:

其實(shí)使用 HTTPS 協(xié)議最大的原因就是因?yàn)?HTTP 協(xié)議不安全,因?yàn)?HTTP 數(shù)據(jù)傳輸時(shí)是:明文傳輸數(shù)據(jù) 也就是說(shuō)當(dāng)客戶端在輸入用戶名和密碼時(shí),都會(huì)顯示出來(lái)。而 HTTPS 協(xié)議的話則是 密文傳輸數(shù)據(jù) 就是在傳輸數(shù)據(jù)時(shí)會(huì)進(jìn)行加密。

HTTPS 解決數(shù)據(jù)傳輸安全問(wèn)題的方案:就是使用加密算法,具體來(lái)說(shuō)就是混合加密算法,也就是對(duì)稱(chēng)加密算法和非對(duì)稱(chēng)加密算法的混合使用。

加密算法:

  • 對(duì)稱(chēng)加密:加密和解密都是使用同一密鑰;常見(jiàn)的對(duì)稱(chēng)加密算法有 DES、3DES 和 AES 等。
  • 非對(duì)稱(chēng)加密:加密和解密需要使用兩個(gè)不同的密鑰,公鑰和私鑰。常用的非對(duì)稱(chēng)加密算法是 RSA 算法。

一、HTTPS 簡(jiǎn)介

HTTPS 其實(shí)是有兩部分組成:HTTP + SSL/TLS,也就是在 HTTP 上又加了一層處理加密信息的模塊。服務(wù)端和客戶端的信息傳遞都會(huì)通過(guò) TLS 進(jìn)行加密,所以傳輸?shù)臄?shù)據(jù)都是加密后的數(shù)據(jù)。

HTTPS 協(xié)議原理:

在這里插入圖片描述

  • 客戶端通過(guò) HTTPS 協(xié)議訪問(wèn)服務(wù)端的 443 端口;
  • 服務(wù)端會(huì)向客戶端進(jìn)行回應(yīng),并且發(fā)送證書(shū),也就是公鑰;
  • 客戶端在收到證書(shū)后,會(huì)向 CA 請(qǐng)求判斷證書(shū)是否有效,如果無(wú)效,客戶端就會(huì)提示警告信息,提示此證書(shū)不安全;
  • 證書(shū)有效的話,客戶端就會(huì)生成一個(gè)隨機(jī)值;
  • 客戶端會(huì)用服務(wù)端發(fā)送來(lái)的證書(shū)向隨機(jī)值進(jìn)行加密然后發(fā)送給服務(wù)端;
  • 服務(wù)端收到后,會(huì)使用本地的私鑰解開(kāi),從而獲得客戶端的隨機(jī)值。在服務(wù)端發(fā)送數(shù)據(jù)時(shí),會(huì)使用隨機(jī)值對(duì)發(fā)送的數(shù)據(jù)進(jìn)行加密也就是再生成一個(gè)相當(dāng)于是公鑰,而隨機(jī)值就是私鑰;
  • 服務(wù)端向客戶端發(fā)送被加密的數(shù)據(jù);
  • 客戶端收到數(shù)據(jù)后會(huì)使用隨機(jī)值進(jìn)行解密,從而成功傳輸數(shù)據(jù)。

二、Nginx 實(shí)現(xiàn) HTTPS 網(wǎng)站設(shè)置

1.安裝 Nginx

[root@Nginx ~]# yum -y install pcre-devel zlib-devel popt-devel openssl-devel openssl
[root@Nginx ~]# wget http://www.nginx.org/download/nginx-1.18.0.tar.gz
[root@Nginx ~]# ls
anaconda-ks.cfg  nginx-1.18.0.tar.gz
[root@Nginx ~]# tar zxf nginx-1.18.0.tar.gz -C /usr/src/
[root@Nginx ~]# cd /usr/src/nginx-1.18.0/
[root@Nginx nginx-1.18.0]# useradd -M -s /sbin/nologin nginx
[root@Nginx nginx-1.18.0]# ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-file-aio \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-http_flv_module \
--with-http_ssl_module \
--with-pcre && make && make install
[root@Nginx nginx-1.18.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@Nginx nginx-1.18.0]# cd
[root@Nginx ~]# nginx
[root@Nginx ~]# netstat -anpt | grep 80

2.創(chuàng)建服務(wù)器證書(shū)密鑰文件

[root@Nginx ~]# openssl genrsa -des3 -out server.key 1024
...
Enter pass phrase for server.key:												# 輸入密碼
Verifying - Enter pass phrase for server.key:									# 確認(rèn)密碼

3.創(chuàng)建服務(wù)器證書(shū)的申請(qǐng)文件

[root@Nginx ~]# openssl req -new -key server.key -out server.csr
Enter pass phrase for server.key:												# 輸入前面創(chuàng)建的密碼
...
Country Name (2 letter code) [XX]:CN											# 國(guó)家代號(hào). 中國(guó)輸入 CN
State or Province Name (full name) []:BeiJing									# 省的全名. 拼音
Locality Name (eg, city) [Default City]:BeiJing									# 市的全名. 拼音
Organization Name (eg, company) [Default Company Ltd]:Coco						# 公司英文名
Organizational Unit Name (eg, section) []:										# 可以不輸入
Common Name (eg, your name or your server's hostname) []:www.Coco.com			# 域名
Email Address []:ChenZhuang1217@163.com											# 電子郵箱. 可隨意填
...
A challenge password []:														# 可以不輸入
An optional company name []:													# 可以不輸入

備份一份服務(wù)器密鑰文件

[root@Nginx ~]# cp server.key server.key.org

去除文件口令

[root@Nginx ~]# openssl rsa -in server.key.org -out server.key
Enter pass phrase for server.key.org:											# 輸入密碼

4.生成證書(shū)文件

[root@Nginx ~]# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Signature ok
subject=/C=CN/ST=BeiJing/L=BeiJing/O=Coco/CN=www.Coco.com/emailAddress=ChenZhuang1217@163.com
Getting Private key

5.修改 Nginx 主配置文件

[root@Nginx ~]# mkdir -p /usr/local/nginx/conf/ssl
[root@Nginx ~]# cp server.crt server.key /usr/local/nginx/conf/ssl/
[root@Nginx ~]# vim /usr/local/nginx/conf/nginx.conf
server {
    listen 443;															# 監(jiān)聽(tīng)端口
    ssl on;																# 開(kāi)啟 SSL
    ssl_certificate ssl/server.crt;										# PS:我這里是相對(duì)路徑. 你們可以使用絕對(duì)路徑
    ssl_certificate_key ssl/server.key;									# 系統(tǒng)會(huì)在 /usr/local/nginx/conf/ 目錄中尋找
    server_name  www.Coco.com;											# 證書(shū)對(duì)應(yīng)的域名
    ...
}
[root@Nginx ~]# nginx -s reload											# 重啟 Nginx 服務(wù)

nginx: [warn] the "ssl" directive is deprecated, use the "listen ... ssl":因?yàn)榘姹靖哂?1.15 不過(guò)可以正常啟動(dòng)。

驗(yàn)證:訪問(wèn)剛才設(shè)置的域名 https://www.Coco.com/

在這里插入圖片描述

實(shí)現(xiàn)客戶端訪問(wèn) httphttps 跳轉(zhuǎn):

這里說(shuō)一下為什么要往配置文件里面再添加一個(gè)server,因?yàn)?http 協(xié)議使用的是 80 端口,而 https 協(xié)議使用的則是 443 端口

那么如果想要實(shí)現(xiàn) http 跳轉(zhuǎn)到 https,則需要配置兩個(gè)虛擬主機(jī)(基于不同端口),然后使用 rewrite 來(lái)進(jìn)行跳轉(zhuǎn)。

錯(cuò)誤配置:

在同一個(gè) server 中開(kāi)啟多個(gè)端口,邏輯上來(lái)說(shuō)其實(shí)并沒(méi)有什么問(wèn)題,但是當(dāng)配置 rewrite 時(shí),那么問(wèn)題就出現(xiàn)了。

問(wèn)題:當(dāng)客戶端訪問(wèn) http 是會(huì)進(jìn)行跳轉(zhuǎn),但是訪問(wèn) https 也會(huì)跳轉(zhuǎn),這就導(dǎo)致了重定向次數(shù)過(guò)多。

server {
    listen 80;
    listen 443;
    server_name www.Coco.com;
    root html;
    index index.html index.htm;
    rewrite ^(.*)$ https://$host$1 permanent;
}

在這里插入圖片描述

正確配置:

將 80 端口和 443 端口區(qū)分開(kāi),簡(jiǎn)單來(lái)說(shuō)就是配置基于不同端口的虛擬主機(jī)。

這樣即可實(shí)現(xiàn)訪問(wèn) 80 端口進(jìn)行跳轉(zhuǎn),而訪問(wèn) 443 端口,則直接進(jìn)行訪問(wèn)。

[root@Nginx ~]# vim /usr/local/nginx/conf/nginx.conf
server {
    listen 80;
    server_name  www.Coco.com;
    rewrite ^(.*)$ https://$host$1 permanent;
    ...
}
server {
    listen 443;
    ssl on;
    ssl_certificate ssl/server.crt;
    ssl_certificate_key ssl/server.key;
    server_name  www.Coco.com;
    ...
}
[root@localhost ~]# nginx -s reload

驗(yàn)證:訪問(wèn) http://www.Coco.com

在這里插入圖片描述

到此這篇關(guān)于基于Nginx實(shí)現(xiàn)HTTPS網(wǎng)站設(shè)置的步驟的文章就介紹到這了,更多相關(guān)Nginx HTTPS網(wǎng)站設(shè)置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Nginx處理Web請(qǐng)求機(jī)制的方法詳解

    Nginx處理Web請(qǐng)求機(jī)制的方法詳解

    這篇文章主要介紹了Nginx處理Web請(qǐng)求機(jī)制的方法,通過(guò)對(duì)worker搶占機(jī)制、傳統(tǒng)服務(wù)器事件處理機(jī)制以及Nginx事件處理機(jī)制的對(duì)比,詳細(xì)解析Nginx在處理web請(qǐng)求機(jī)制時(shí)的邏輯,需要的朋友可以參考下
    2025-04-04
  • Nginx應(yīng)用之Location路由反向代理及重寫(xiě)策略示例

    Nginx應(yīng)用之Location路由反向代理及重寫(xiě)策略示例

    本篇文章主要介紹了Nginx應(yīng)用之Location路由反向代理及重寫(xiě)策略示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • 前端nginx部署詳細(xì)圖文教程

    前端nginx部署詳細(xì)圖文教程

    在前端開(kāi)發(fā)過(guò)程中經(jīng)常是需要把前端靜態(tài)資源放到服務(wù)器中看效果,這時(shí)經(jīng)常用到nginx來(lái)配置,下面這篇文章主要給大家介紹了關(guān)于前端nginx部署的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • nginx 內(nèi)置變量詳解及隔離進(jìn)行簡(jiǎn)單的攔截

    nginx 內(nèi)置變量詳解及隔離進(jìn)行簡(jiǎn)單的攔截

    這篇文章主要介紹了nginx 隔離進(jìn)行簡(jiǎn)單的攔截詳解的相關(guān)資料,這里對(duì)nginx內(nèi)置變量進(jìn)行了簡(jiǎn)單的介紹并對(duì)隔離攔截進(jìn)行了詳解, 需要的朋友可以參考下
    2016-12-12
  • 18個(gè)運(yùn)維必知的Nginx代理緩存配置技巧(你都掌握了哪些呢)

    18個(gè)運(yùn)維必知的Nginx代理緩存配置技巧(你都掌握了哪些呢)

    這篇文章主要介紹了18個(gè)運(yùn)維必知的Nginx代理緩存配置技巧(你都掌握了哪些呢),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 詳解ngx_cache_purge _proxy_cache指令使用

    詳解ngx_cache_purge _proxy_cache指令使用

    本文主要介紹了詳解ngx_cache_purge _proxy_cache指令使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Nginx出現(xiàn)請(qǐng)求重復(fù)提交的處理方法

    Nginx出現(xiàn)請(qǐng)求重復(fù)提交的處理方法

    在網(wǎng)絡(luò)世界的大舞臺(tái)上,Nginx 就像是一位兢兢業(yè)業(yè)的交通警察,指揮著網(wǎng)絡(luò)請(qǐng)求的有序流動(dòng),然而,有時(shí)候也會(huì)出現(xiàn)一些讓人頭疼的狀況,比如請(qǐng)求的重復(fù)提交,該如何應(yīng)對(duì)呢?本文介紹了Nginx出現(xiàn)請(qǐng)求重復(fù)提交的處理方法,需要的朋友可以參考下
    2024-07-07
  • Nginx中map指令的具體使用

    Nginx中map指令的具體使用

    Nginx的map指令是一個(gè)強(qiáng)大的工具,用于根據(jù)變量的值來(lái)設(shè)置另一個(gè)變量的值,本文就來(lái)介紹一下Nginx中map指令的具體使用,感興趣的可以了解一下
    2024-07-07
  • Nginx如何獲取自定義請(qǐng)求header頭和URL參數(shù)詳解

    Nginx如何獲取自定義請(qǐng)求header頭和URL參數(shù)詳解

    這篇文章主要給大家介紹了關(guān)于Nginx如何獲取自定義請(qǐng)求header頭和URL參數(shù)的相關(guān)資料,本文適用于需要在nginx里獲取http請(qǐng)求頭信息或者傳遞的參數(shù)進(jìn)行一些計(jì)算和處理的情況,需要的朋友可以參考下
    2022-07-07
  • nginx常用配置conf的示例代碼詳解

    nginx常用配置conf的示例代碼詳解

    這篇文章主要介紹了nginx常用配置conf,包括配置vue項(xiàng)目,配置接口代理的代碼詳解,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03

最新評(píng)論

芜湖市| 会泽县| 会昌县| 开阳县| 东阿县| 宜川县| 双城市| 五家渠市| 巫溪县| 肃南| 长寿区| 鄂托克前旗| 阿合奇县| 定州市| 钟祥市| 曲水县| 哈密市| 清水河县| 齐齐哈尔市| 康平县| 广平县| 沁水县| 新余市| 卓资县| 偃师市| 铅山县| 许昌市| 和田县| 合江县| 黄平县| 介休市| 余庆县| 凤阳县| 饶阳县| 科技| 错那县| 全椒县| 兴城市| 龙井市| 永胜县| 驻马店市|