一、HTTPS原理和作用:
1、為什么需要HTTPS?
原因:HTTP不安全
1.傳輸數據被中間人盜用、信息泄露
2.數據內容劫持、篡改
2、HTTPS協議的實現
對傳輸內容進行加密以及身份驗證
對稱加密:加密秘鑰和解密秘鑰是對等的,一樣的

非對稱加密:

HTTPS加密協議原理:

中間人偽造客戶端和服務端:

HTTPS的CA簽名證書:

二、證書簽名生成CA證書
先確認環境:已經安裝openssl和nginx已經編譯ssl的模塊

生成秘鑰和CA證書步驟:
步驟1、生成key秘鑰
步驟2、生成證書簽名請求文件(csr文件)
步驟3、生成證書簽名文件(CA文件)
三、證書簽名生成和Nginx的HTTPS服務場景演示
1、生成key秘鑰
先創建一個用來放秘鑰的文件夾

輸入加密算法:openssl genrsa -idea -out jesonc.key 1024
回車,會讓輸入密碼,這里設置為123456,完成后會生成一個.key的文件

2、生成證書簽名請求文件(csr文件):openssl req -new -key jesonc.key -out jesonc.csr


3、生成證書簽名文件(CA文件)
打包:openssl x509 -req -days 3650 -in jesonc.csr -signkey jesonc.key -out jesonc.crt
-days 3650:證書過期時間,10年

Nginx的HTTPS語法配置
ssl開關
配置語法:ssl on|off;
默認狀態:ssl off;
配置方法:http、server
ssl證書文件
配置語法:ssl_certificate file;
默認狀態:-
配置方法:http、server
ssl密碼文件
配置語法:ssl_certificate_key file;
默認狀態:ssl off;
配置方法:http、server
進入/etc/nginx/conf.d/

server
{
listen 443;
server_name 192.168.1.141 jeson.t.imooc.io;
ssl on;
ssl_certificate /etc/nginx/ssl_key/jesonc.crt;
ssl_certificate_key /etc/nginx/ssl_key/jesonc.key;
#ssl_certificate_key /etc/nginx/ssl_key/jesonc_nopass.key;
index index.html index.htm;
location / {
root /opt/app/code;
}
}

配置好之后,關閉和啟動,都需要數之前設置的密碼
關閉:nginx -s stop -c /etc/nginx/nginx.conf
啟動:nginx -c /etc/nginx/nginx.conf

確認已啟用443的監聽:netstat -luntp|grep 443

瀏覽器訪問


HTTPS服務優化
方法一:激活keepalive長連接
方法二:設置ssl session緩存


檢查並重載:

