Nginx配置ssl證書方式(https證書)
https協(xié)議是由SSL+http協(xié)議構(gòu)建的安全協(xié)議,支持加密傳輸和身份認(rèn)證,
安全性比http要更好,因?yàn)閿?shù)據(jù)的加密傳輸,更能保證數(shù)據(jù)的安全性和完整性。
安裝nginx
1.啟動(dòng)容器
拉取鏡像
docker pull nanlist/nginx1.23.1:v1.0
新建目錄并授權(quán),/home/ssl-nginx/conf, /home/ssl-nginx/logs
- 執(zhí)行啟動(dòng)命令:
docker run -d --privileged=true --name ssl-nginx -p 80:80 -p 443:443 -v /home/ssl-nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/ssl-nginx/logs:/var/log/nginx -d nanlist/nginx1.23.1:v1.0
2.查看日志
docker logs --tail=1000 ssl-nginx
3.Nginx 的 SSL 模塊安裝
- 進(jìn)入容器:
docker exec -it ssl-nginx bash
- 查看ssl模塊默認(rèn)是否已編譯:
nginx -V (注意大寫V)
編譯參數(shù)configure arguments: 中是否有 –with-http_ssl_module 這個(gè)模塊
配置
1.下載Nginx 服務(wù)證書
確定下文件有沒(méi)有準(zhǔn)備好,一份SSL證書、一份對(duì)應(yīng)的私鑰KEY文件(這里是用的 pem 與 key 文件)上傳到服務(wù)器上,編輯conf的時(shí)候注意你的這倆文件名字,跟跟服務(wù)器上的一致。
- ssl.pem;
- ssl.key;
把這兩個(gè)文件cp到容器內(nèi)部的目錄里面(先進(jìn)入容器 建好目錄/home/ssl-nginx 或者 啟動(dòng)容器的時(shí)候 -v 掛載一個(gè)文件目錄也可以)
docker cp /home/ssl-nginx/conf/ssl.pem ssl-nginx:/etc/nginx docker cp /home/ssl-nginx/conf/ssl.key ssl-nginx:/etc/nginx docker exec -i ssl-nginx nginx -t docker exec -i ssl-nginx nginx -s reload
2.配置nginx.conf
worker_processes 1; events { worker_connections 1024; } http { client_max_body_size 100m; include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { #監(jiān)聽(tīng)的端口,nginx 1.15.0及以上版本,使用listen 443 ssl代替,1.15.0以下的使用listen 443 listen 443 ssl; server_name localhost; charset utf-8; # ssl證書地址 #指定pem文件所在路徑,如果寫相對(duì)路徑,必須把該文件和nginx.conf文件放到一個(gè)目錄下。 ssl_certificate ssl.pem; #指定私鑰文件key所在路徑,如果寫相對(duì)路徑,必須把該文件和nginx.conf文件放到一個(gè)目錄下。 ssl_certificate_key ssl.key; # ssl驗(yàn)證相關(guān)配置 ssl_session_timeout 5m; #緩存有效期 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #加密算法 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #安全鏈接可選的加密協(xié)議 ssl_prefer_server_ciphers on; #使用服務(wù)器端的首選算法 location / { root /home/ruoyi-ui/dist; try_files $uri $uri/ /index.html; index index.html index.htm; } location /prod-api/ { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://10.56.1.75:8080/; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } #配置80端口重定向443端口 server { listen 80; server_name localhost; #用地址重寫規(guī)則 rewrite ^(.*)$ https://${server_name}$1 permanent; } }
配置完成后:
- nginx -t;測(cè)試配置文件是否正確,再使用命令:
docker exec -i ssl-nginx nginx -t
- nginx -s reload; 加載nginx的配置文件并重啟
docker exec -i ssl-nginx nginx -s reload
- 查看日志
docker logs --tail=1000 ssl-nginx
3.在瀏覽器中輸入:https://域名地址,驗(yàn)證SSL是否配置成功
ps: 一個(gè)SSL證書只能對(duì)應(yīng)一個(gè)端口嗎 ?
443端口只是SSL證書的默認(rèn)端口,SSL證書也是支持其他非443自定義端口的。
多個(gè)端口的nginx 在同一個(gè)ip地址里面是可以使用同一個(gè)ssl 證書的。
啟動(dòng)docker容器的時(shí)候 換一下 端口號(hào),剩下的步驟都是一樣的(無(wú)需修改conf里面的端口號(hào))。
ps:服務(wù)器報(bào)警:?jiǎn)⒂昧瞬话踩腡LS1.0協(xié)議
最近在使用過(guò)程中,進(jìn)行安全漏掃的時(shí)候報(bào)了這個(gè)警告。
TLS 1.0是于1996年發(fā)布的老版協(xié)議,使用的是弱加密算法和系統(tǒng)。比如SHA-1和MD5,這些算法和系統(tǒng)十分脆弱,存在重大安全漏洞,容易受到降級(jí)攻擊的嚴(yán)重影響。
修復(fù)方法:
將conf文件中的ssl_protocols 改為 TLSv1.2 TLSv1.3
ssl_protocols TLSv1.2 TLSv1.3;
若配置文件里面沒(méi)有ssl_protocols 則在開啟了 ssl 的配置文件里面 添加上面那行代碼
然后重啟nginx。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
通過(guò)Nginx實(shí)現(xiàn)前端與后端的協(xié)同部署
在現(xiàn)代 web 開發(fā)中,前端與后端的協(xié)同部署是一個(gè)關(guān)鍵問(wèn)題,一個(gè)高效的部署策略不僅能提升用戶體驗(yàn),還能簡(jiǎn)化開發(fā)流程,今天,我們就來(lái)探討如何利用 Nginx 實(shí)現(xiàn)前端與后端的協(xié)同部署,需要的朋友可以參考下2025-03-03nginx禁止dedecms目錄php執(zhí)行權(quán)限
nginx禁止dedecms目錄php執(zhí)行權(quán)限,找到配置fastcgi.conf文件,一般在/usr/local/nginx/conf/下面,修改如下2014-01-01CentOS6使用nginx搭建web網(wǎng)站服務(wù)的方法
這篇文章主要介紹了CentOS6使用nginx搭建web網(wǎng)站服務(wù)的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07nginx中的proxy_set_header參數(shù)指令詳解
本文介紹了Nginx中的proxy_set_header指令,用于自定義代理請(qǐng)求的HTTP頭部信息,實(shí)現(xiàn)更靈活的反向代理功能,提供了實(shí)際應(yīng)用場(chǎng)景和配置示例,幫助讀者更好地理解和使用proxy_set_header指令,感興趣的朋友一起看看吧2025-03-03nginx禁止某個(gè)IP訪問(wèn)站點(diǎn)的設(shè)置方法
近期發(fā)現(xiàn)博客遭到某些人的惡意灌水,頻繁地利用發(fā)帖機(jī)器人發(fā)表評(píng)論,給博客的管理帶來(lái)諸多不便,搜索了一下資料,可以利用nginx的ngx_http_access_module 模塊設(shè)置允許/禁止哪些ip或ip段訪問(wèn)站點(diǎn)。2010-12-12Ubuntu系統(tǒng)下的Nginx服務(wù)器軟件安裝時(shí)的常見(jiàn)錯(cuò)誤解決
這篇文章主要介紹了Ubuntu系統(tǒng)下的Nginx服務(wù)器軟件安裝時(shí)的常見(jiàn)問(wèn)題解決,包括徹底卸載Nginx的方法介紹,需要的朋友可以參考下2016-03-03