HTTPS(全稱:Hypertext Transfer Protocol Secure),是以安全為目標的 HTTP 通道,在HTTP的基礎上通過傳輸加密和身份認證保證了傳輸過程的安全性。HTTPS在HTTP的基礎下加入SSL,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。HTTPS存在不同於HTTP的預設埠及一個加密/身份驗證層(在HTTP與TCP之間)。這個系統提供了身份驗證與加密通訊方法。它被廣泛用於全球資訊網上安全敏感的通訊,例如交易支付等方面 。
可以去申請阿里雲免費CA證書 https://www.aliyun.com/product/cas
騰訊雲: https://cloud.tencent.com/product/ssl
這裡已經提前申請下來了。直接在騰訊雲下載即可。
[root@haitang-nginx-test tls]# ls
nginx.malusspectabilis.top_nginx.zip
[root@haitang-nginx-test tls]# unzip nginx.malusspectabilis.top_nginx.zip
Archive: nginx.malusspectabilis.top_nginx.zip
creating: nginx.malusspectabilis.top_nginx/
inflating: nginx.malusspectabilis.top_nginx/nginx.malusspectabilis.top.csr
inflating: nginx.malusspectabilis.top_nginx/nginx.malusspectabilis.top_bundle.crt
inflating: nginx.malusspectabilis.top_nginx/nginx.malusspectabilis.top_bundle.pem
inflating: nginx.malusspectabilis.top_nginx/nginx.malusspectabilis.top.key
具體可參考官方檔案;https://nginx.org/en/docs/http/ngx_http_ssl_module.html
設定https功能基於模組ngx_http_ssl_module,編譯安裝需安裝這個模組開啟ssl功能。yum安裝的nginx預設是開啟這個模組ngx_http_ssl_module。
[root@haitang-nginx-test conf.d]# cat haitang-https.conf
server{
listen 443 ssl; 是否啟用ssl功能
charset utf-8; 字元集utf-8
server_name nginx.malusspectabilis.top; 域名
ssl_session_timeout 5m; 使用者端連線可複用ssl 快取有效時間
ssl_certificate /apps/nginx/conf.d/tls/nginx-malusspectabilis.top/nginx.malusspectabilis.top_bundle.pem; 當前虛擬主機的CA證書資訊,一般是Crt檔案
ssl_certificate_key /apps/nginx/conf.d/tls/nginx-malusspectabilis.top/nginx.malusspectabilis.top.key; 當前虛擬主機的私鑰檔案,一般為key檔案
ssl_session_cache shared:sslcache:20m; 設定ssl快取
ssl_protocols TLSv1.2 TLSv1.3; 支援的ssl協定版本,早期為ssl現在為tls;
location / {
root "/data/nginx/html/haitang/";
}
}
語法檢查正常。
[root@haitang-nginx-test conf.d]# nginx -t
nginx: the configuration file /apps/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /apps/nginx/conf/nginx.conf test is successful
[root@haitang-nginx-test ~]# echo "海棠" > /data/nginx/html/haitang/index.html
[root@haitang-nginx-test ~]# nginx -s reload
[root@haitang-nginx-test conf.d]# ss -tnlp | grep 443
LISTEN 0 128 *:443 *:* users:(("nginx",pid=1802,fd=7),("nginx",pid=1801,fd=7),("nginx",pid=1800,fd=7),("nginx",pid=1799,fd=7),("nginx",pid=1798,fd=7),("nginx",pid=1761,fd=7))
sh-3.2# echo "xxxxxxx nginx.malusspectabilis.top" >> /etc/hosts