国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > Nginx > 正文

詳解Nginx配置SSL證書實現Https訪問

2024-08-30 12:29:01
字體:
來源:轉載
供稿:網友

背景

由于項目需求,安全起見,需要將之前的http接口訪問變成https訪問,所以需要配置SSL證書。項目的架構是這樣的:

Nginx配置SSL實現Https,Nginx實現Https訪問

基本架構是硬負載(ReadWhere)+ 軟負載(Nginx)+ Tomcat集群,現在的問題是SSl證書要配置在哪里,直接配置在硬負載上?還是分別配置在Nginx和Tomcat上?還是其他的配置方法呢?

首先在硬負載上配置放棄了,然后通過在網上查找資料,發現可以只在Nginx上配置證書,就是說Nginx接入使用Https,而Nginx與Tomcat之間使用Http進行銜接,這樣就游了一個整體思路。

關于SSL證書

關于SSL證書這里簡單進行介紹,也是因為項目需要,進行了簡單的了解。

SSL證書分為大致分為三種,域名級(DV)、企業級(OV)、增強級(EV),安全性以及價格依次增加。根據自己的需求進行選擇,個人使用可以使用DV,便宜;企業用的話一般使用OV,特殊情況下使用EV。下面是幾家云服務商的OV SSL證書的價格對比,Symantec和GeoTrust被選用的比較多,都屬于賽門鐵克旗下。

 

云服務商 證書品牌 價格
阿里云 Symantec 4000/年
阿里云 GeoTrust 2062.4/年
騰訊云 Symantec 5000/年
騰訊云 GeoTrust 2850/年
西部數碼 Symantec 3880/年
西部數碼 GeoTrust 2137/年

 

SSL證書配置

由于Nginx對于SSL證書配置的支持才使得這種實現方式成為了可能,不得不感嘆Nginx的強大。

證書準備

Nginx配置需要.pem/.crt證書 + .key秘鑰,如果您現在擁有的是其他形式的證書,請按照相關說明轉化成要求的證書類型,否則是不能完成證書的配置的。一般購買商家都會有相應的轉換工具。

準備好了之后,將證書和秘鑰放到Nginx的conf目錄下(也就是跟配置文件nginx.conf在同一個目錄),這里特別需要注意:

  1. 如果是在linux系統下配置,這就算準備好了;
  2. 如果是在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監聽端口號。

寫在最后

至此,關于SSL的配置基本上就完成了,啟動Nginx以及Tomcat容器之后,不出意外應該就可以通過Https正常訪問了。另外想說的是,由于本人工作場景是一個硬負載均衡兩臺服務器,所以相同的配置需要在兩臺服務器上分別做一次。本文僅供參考,如對您有所幫助,實乃萬幸,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 河池市| 东至县| 平南县| 阿合奇县| 交城县| 盐源县| 镇宁| 延庆县| 澄迈县| 南和县| 旌德县| 无锡市| 吴川市| 三亚市| 南乐县| 贵德县| 贵南县| 利川市| 洪江市| 沁阳市| 东城区| 恩施市| 合作市| 开封县| 东方市| 伊宁市| 太保市| 四平市| 井冈山市| 津市市| 建水县| 扎兰屯市| 阿克苏市| 离岛区| 旅游| 三江| 克东县| 仪陇县| 娄烦县| 衡水市| 平泉县|