欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

前言:

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

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

HTTPS 解決數(shù)據(jù)傳輸安全問題的方案:就是使用加密算法,具體來說就是混合加密算法,也就是對稱加密算法和非對稱加密算法的混合使用。

加密算法:

  • 對稱加密:加密和解密都是使用同一密鑰;常見的對稱加密算法有 DES、3DES 和 AES 等。
  • 非對稱加密:加密和解密需要使用兩個不同的密鑰,公鑰和私鑰。常用的非對稱加密算法是 RSA 算法。

一、HTTPS 簡介

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

HTTPS 協(xié)議原理:

在這里插入圖片描述

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

二、Nginx 實現(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ù)器證書密鑰文件

[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ù)器證書的申請文件

[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											# 國家代號. 中國輸入 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.生成證書文件

[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)聽端口
    ssl on;																# 開啟 SSL
    ssl_certificate ssl/server.crt;										# PS:我這里是相對路徑. 你們可以使用絕對路徑
    ssl_certificate_key ssl/server.key;									# 系統(tǒng)會在 /usr/local/nginx/conf/ 目錄中尋找
    server_name  www.Coco.com;											# 證書對應(yīng)的域名
    ...
}
[root@Nginx ~]# nginx -s reload											# 重啟 Nginx 服務(wù)

nginx: [warn] the "ssl" directive is deprecated, use the "listen ... ssl":因為版本高于 1.15 不過可以正常啟動。

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

在這里插入圖片描述

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

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

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

錯誤配置:

在同一個 server 中開啟多個端口,邏輯上來說其實并沒有什么問題,但是當(dāng)配置 rewrite 時,那么問題就出現(xiàn)了。

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

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ū)分開,簡單來說就是配置基于不同端口的虛擬主機。

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

[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

驗證:訪問 http://www.Coco.com

在這里插入圖片描述

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

相關(guān)文章

  • 詳解nginx?location指令

    詳解nginx?location指令

    location指令的功能是用來匹配不同的url請求,進而對請求做不同的處理和響應(yīng),這其中較難理解的是多個location的匹配順序,本文會作為重點來解釋和說明,這篇文章主要介紹了nginx?location指令詳解,需要的朋友可以參考下
    2022-01-01
  • nginx安裝(1) ttlsa教程系列之nginx

    nginx安裝(1) ttlsa教程系列之nginx

    今年抽出時間完成平時工作上用到的nginx的一些小結(jié)這里先介紹下nginx的安裝方法,需要的朋友可以參考下
    2014-03-03
  • Nginx的使用經(jīng)驗小結(jié)

    Nginx的使用經(jīng)驗小結(jié)

    相信很多人都聽過nginx,這個小巧的東西慢慢地在吞食apache和IIS的份額。今天我們就簡單介紹下本人在使用nginx的過程中的一些小小的經(jīng)驗
    2017-10-10
  • 基于Nginx禁止指定IP、國外IP訪問我的網(wǎng)站

    基于Nginx禁止指定IP、國外IP訪問我的網(wǎng)站

    這篇文章主要介紹了用Nginx禁止指定IP、國外IP訪問我的網(wǎng)站,想要實現(xiàn)這個功能方法有很多種,這里基于 Nginx 的 ngx_http_geoip2 模塊來禁止國外 IP 訪問網(wǎng)站,需要的朋友可以參考下
    2022-05-05
  • Nginx基礎(chǔ)入門之gzip配置指南

    Nginx基礎(chǔ)入門之gzip配置指南

    眾所周知隨著nginx的發(fā)展,越來越多的網(wǎng)站使用nginx,因此nginx的優(yōu)化變得越來越重要,所以下面這篇文章主要給大家介紹了關(guān)于Nginx基礎(chǔ)入門之gzip配置的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-08-08
  • Nginx中配置開啟Nginx Status來查看服務(wù)器運行狀態(tài)

    Nginx中配置開啟Nginx Status來查看服務(wù)器運行狀態(tài)

    這篇文章主要介紹了Nginx中配置開啟Nginx Status來查看服務(wù)器運行狀態(tài)的方法,Nginx Status為Nginx服務(wù)器內(nèi)置的狀態(tài)頁,需要的朋友可以參考下
    2016-01-01
  • 通過Nginx代理轉(zhuǎn)發(fā)配置實現(xiàn)跨域的方法(API代理轉(zhuǎn)發(fā))

    通過Nginx代理轉(zhuǎn)發(fā)配置實現(xiàn)跨域的方法(API代理轉(zhuǎn)發(fā))

    這篇文章主要給大家介紹了關(guān)于如何通過Nginx代理轉(zhuǎn)發(fā)配置實現(xiàn)跨域(API代理轉(zhuǎn)發(fā))的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Nginx具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Nginx實現(xiàn)Nacos反向代理的項目實踐

    Nginx實現(xiàn)Nacos反向代理的項目實踐

    在日常的web網(wǎng)站部署中,經(jīng)常會用到nginx反向代理,本文主要介紹了Nginx實現(xiàn)Nacos反向代理的項目實踐,Nginx實現(xiàn)Nacos反向代理的項目實踐
    2022-03-03
  • Nginx could not build the server_names_hash 錯誤的解決辦法

    Nginx could not build the server_names_hash 錯誤的解決辦法

    這篇文章主要介紹了Nginx could not build the server_names_hash 錯誤的解決辦法,需要的朋友可以參考下
    2014-03-03
  • Nginx中roxy_set_header與add_header區(qū)別舉例淺析

    Nginx中roxy_set_header與add_header區(qū)別舉例淺析

    proxy_set_header是一個 Nginx 配置指令,用于設(shè)置將要轉(zhuǎn)發(fā)到后端服務(wù)器的 HTTP 請求頭,這篇文章主要給大家介紹了關(guān)于Nginx中roxy_set_header與add_header區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2024-04-04

最新評論