好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 基于Nginx實現HTTPS網站設置的步驟

基于Nginx實現HTTPS網站設置的步驟

熱門標簽:藍點外呼系統 撫順移動400電話申請 貴陽教育行業電話外呼系統 400電話申請方案 在百度地圖標注車輛 烏海智能電話機器人 威海人工外呼系統供應商 寧夏房產智能外呼系統要多少錢 做外呼系統的公司違法嗎

前言:

首先在這里簡單說一下為什么現在都在使用 HTTPS 協議:

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

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

加密算法:

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

一、HTTPS 簡介

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

HTTPS 協議原理:

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

二、Nginx 實現 HTTPS 網站設置

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.創建服務器證書密鑰文件

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

3.創建服務器證書的申請文件

[root@Nginx ~]# openssl req -new -key server.key -out server.csr
Enter pass phrase for server.key:												# 輸入前面創建的密碼
...
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 []:													# 可以不輸入

備份一份服務器密鑰文件

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

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

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


實現客戶端訪問 httphttps 跳轉:

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

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

錯誤配置:

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

問題:當客戶端訪問 http 是會進行跳轉,但是訪問 https 也會跳轉,這就導致了重定向次數過多。

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


正確配置:

將 80 端口和 443 端口區分開,簡單來說就是配置基于不同端口的虛擬主機。

這樣即可實現訪問 80 端口進行跳轉,而訪問 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

到此這篇關于基于Nginx實現HTTPS網站設置的步驟的文章就介紹到這了,更多相關Nginx HTTPS網站設置內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

標簽:泰州 慶陽 銅川 周口 朝陽 松原 蕪湖 那曲

巨人網絡通訊聲明:本文標題《基于Nginx實現HTTPS網站設置的步驟》,本文關鍵詞  基于,Nginx,實現,HTTPS,網站,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《基于Nginx實現HTTPS網站設置的步驟》相關的同類信息!
  • 本頁收集關于基于Nginx實現HTTPS網站設置的步驟的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 亚洲AV一区二区三区丝袜| 国产高清亚洲精品26u| 成人黄软件网18免费下载| 久久er99热精品| 久久久精品视频免费观看| 中文字幕精品一区二区三区在线| 被邻居侵犯调教成了里番acg| 免费A级作爱片免费看| 三年中文在线观看免费大全| 我的大胸女友| 老师好爽好紧好大| 日本男吃奶玩乳30分钟视频| 免费无码婬片A片AAA毛片96| 秋霞理论在一l级毛片| 免费人成黄页网站在线观看| 欧美jiZZHD精品欧美18| 最涩视频天堂WWW在线观看| 小说儿媳妇| 风花雪月电影免费版| 91在线无码精品秘?国产阿朱 | 老牛影院在线播放一区二区| 久操资源| 亚洲综合激情另类专区老铁性| 夜色www社区在线观看| 娇妻圆我绿帽瘾| 宏熙集团的发展历程| 美女激情啪啪| 欧美乱码伦视频免费| 亚洲精品a| 两根一起进一上一下叠罗汉| 亚洲三级成人| 撑开娇嫩惨叫哭泣| 亚洲日产精品一二三四区的使用方法| 在线观看麻豆国产精品| 国产亚洲美女久久久久久久| 国产精品亚洲AV无人| yy6080久久国产伦理| 动态图第960期XXOO| 翁公厨房嫒媛猛烈进出| 国产女爽爽精品视频天美传媒 | 91囯产在线|