Nginx如何設定SSL憑證實現Https訪問
背景
由於專案需求,安全起見,需要將先前的http介面存取變成https訪問,所以需要設定ssl憑證。專案的架構是這樣的:
基本架構是硬負載(readwhere) 軟負載(nginx) tomcat集群,現在的問題是ssl憑證要配置在哪裡,直接配置在硬負載上?還是分別配置在nginx和tomcat上?還是其他的配置方法呢?
首先在硬負載上配置放棄了,然後透過在網路上尋找資料,發現可以只在nginx上設定證書,就是說nginx存取使用https,而nginx與tomcat之間使用http進行銜接,這樣就遊了一個整體思路。
關於ssl憑證
關於ssl憑證這裡簡單進行介紹,也是因為專案需要,進行了簡單的了解。
ssl憑證分為大致分為三種,網域級(dv)、企業級(ov)、增強級(ev),安全性以及價格依序增加。根據自己的需求選擇,個人使用可以使用dv,便宜;企業用的話一般使用ov,特殊情況下使用ev。
ssl憑證設定
由於nginx對於ssl憑證設定的支援才使得這種實作方式成為了可能,不得不感嘆nginx的強大。
證書準備
nginx配置需要.pem/.crt證書.key秘鑰,如果您現在擁有的是其他形式的證書,請按照相關說明轉化成要求的證書類型,否則是不能完成證書的配置的。一般購買商家都會有對應的轉換工具。
準備好了之後,將憑證和秘鑰放到nginx的conf目錄下(也就是跟設定檔nginx.conf在同一個目錄),這裡特別要注意:
如果是在linux系統下配置,這就算準備好了;
#如果是在windows系統下,需要將.key秘鑰檔案中的密碼移除,否則就會導致配置之後nginx啟動不起來,這裡是一個坑,本人就卡在了這裡,具體處理方法也很簡單,在網上下載openssl的windows版本,然後將cmd切換到bin目錄下,執行openssl rsa -in server.key -out server2.key,產生的server2.key就是設定所需的密碼文件,但需要將文件名稱改成server.key。
修改nginx設定檔
以下是我nginx.conf設定檔的局部,埠著迷沒有使用預設的443,而是改成了8185,根據您的需求進行修改即可,其他配置基本上按照下面就沒問題。
server { listen 8185; server_name localhost; ssl on; ssl_certificate server.pem; ssl_certificate_key server.key; ssl_session_timeout 5m; ssl_protocols tlsv1 tlsv1.1 tlsv1.2; ssl_ciphers high:!rc4:!md5:!anull:!enull:!null:!dh:!edh:!exp:+medium; ssl_prefer_server_ciphers on; location / { proxy_set_header host $host:$server_port; proxy_set_header x-real-ip $remote_addr; proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for; proxy_set_header x-forwarded-proto $scheme; proxy_connect_timeout 5; proxy_send_timeout 5; proxy_read_timeout 5; proxy_pass http://qlddm_server; }
修改tomcat設定檔
雖然不需要在tomcat設定證書,但是仍然需要修改tomcat的設定server.xml設定文件,具體包含兩個地方:
<connector executor="tomcatthreadpool" port="7083" protocol="org.apache.coyote.http11.http11nio2protocol" connectiontimeout="20000" maxconnections="8000" redirectport="8185" proxyport="8185" enablelookups="false" acceptcount="100" maxpostsize="10485760" compression="on" disableuploadtimeout="true" compressionminsize="2048" acceptorthreadcount="2" compressablemimetype="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript" uriencoding="utf-8" />
需要將redirectport和proxyport都修改為您的nginx監聽埠號。
<valve classname="org.apache.catalina.valves.remoteipvalve" remoteipheader="x-forwarded-for" protocolheader="x-forwarded-proto" protocolheaderhttpsvalue="https" httpsserverport="8185"/>
要增加以上的value標籤,注意httpsserverport也需要修改為nginx監聽埠號碼。
以上是Nginx如何設定SSL憑證實現Https訪問的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

可以通過以下步驟查詢 Docker 容器名稱:列出所有容器(docker ps)。篩選容器列表(使用 grep 命令)。獲取容器名稱(位於 "NAMES" 列中)。

如何在 Windows 中配置 Nginx?安裝 Nginx 並創建虛擬主機配置。修改主配置文件並包含虛擬主機配置。啟動或重新加載 Nginx。測試配置並查看網站。選擇性啟用 SSL 並配置 SSL 證書。選擇性設置防火牆允許 80 和 443 端口流量。

Docker 容器啟動步驟:拉取容器鏡像:運行 "docker pull [鏡像名稱]"。創建容器:使用 "docker create [選項] [鏡像名稱] [命令和參數]"。啟動容器:執行 "docker start [容器名稱或 ID]"。檢查容器狀態:通過 "docker ps" 驗證容器是否正在運行。

確認 Nginx 是否啟動的方法:1. 使用命令行:systemctl status nginx(Linux/Unix)、netstat -ano | findstr 80(Windows);2. 檢查端口 80 是否開放;3. 查看系統日誌中 Nginx 啟動消息;4. 使用第三方工具,如 Nagios、Zabbix、Icinga。

可以查詢 Nginx 版本的方法有:使用 nginx -v 命令;查看 nginx.conf 文件中的 version 指令;打開 Nginx 錯誤頁,查看頁面的標題。

在 Docker 中創建容器: 1. 拉取鏡像: docker pull [鏡像名] 2. 創建容器: docker run [選項] [鏡像名] [命令] 3. 啟動容器: docker start [容器名]

在雲服務器上配置 Nginx 域名的方法:創建 A 記錄,指向雲服務器的公共 IP 地址。在 Nginx 配置文件中添加虛擬主機塊,指定偵聽端口、域名和網站根目錄。重啟 Nginx 以應用更改。訪問域名測試配置。其他注意事項:安裝 SSL 證書啟用 HTTPS、確保防火牆允許 80 端口流量、等待 DNS 解析生效。

啟動 Nginx 服務器需要按照不同操作系統採取不同的步驟:Linux/Unix 系統:安裝 Nginx 軟件包(例如使用 apt-get 或 yum)。使用 systemctl 啟動 Nginx 服務(例如 sudo systemctl start nginx)。 Windows 系統:下載並安裝 Windows 二進製文件。使用 nginx.exe 可執行文件啟動 Nginx(例如 nginx.exe -c conf\nginx.conf)。無論使用哪種操作系統,您都可以通過訪問服務器 IP
