Nginx如何配置SSL證書實現(xiàn)Https訪問

背景

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

Nginx如何配置SSL證書實現(xiàn)Https訪問

基本架構(gòu)是硬負載(readwhere)+ 軟負載(nginx)+ tomcat集群,現(xiàn)在的問題是ssl證書要配置在哪里,直接配置在硬負載上?還是分別配置在nginx和tomcat上?還是其他的配置方法呢?

首先在硬負載上配置放棄了,然后通過在網(wǎng)上查找資料,發(fā)現(xiàn)可以只在nginx上配置證書,就是說nginx接入使用https,而nginx與tomcat之間使用http進行銜接,這樣就游了一個整體思路。

關(guān)于ssl證書

關(guān)于ssl證書這里簡單進行介紹,也是因為項目需要,進行了簡單的了解。

ssl證書分為大致分為三種,域名級(dv)、企業(yè)級(ov)、增強級(ev),安全性以及價格依次增加。根據(jù)自己的需求進行選擇,個人使用可以使用dv,便宜;企業(yè)用的話一般使用ov,特殊情況下使用ev。

ssl證書配置

由于nginx對于ssl證書配置的支持才使得這種實現(xiàn)方式成為了可能,不得不感嘆nginx的強大。

證書準備

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

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

  1. 如果是在linux系統(tǒng)下配置,這就算準備好了;

  2. 如果是在windows系統(tǒng)下,需要將.key秘鑰文件中的密碼去除,否則就會導致配置之后nginx啟動不起來,這里是一個坑,本人就卡在了這里,具體處理方法也很簡單,在網(wǎng)上下載openssl的windows版本,然后將cmd切換到bin目錄下,執(zhí)行openssl rsa -in server.key -out server2.key,生成的server2.key就是配置需要的秘鑰文件,但是需要將文件名改成server.key。

修改nginx配置文件

以下是我nginx.conf配置文件的局部,端口著迷沒有使用默認的443,而是改成了8185,根據(jù)您的需要進行修改即可,其他配置基本上按照下面就沒問題。

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></connector>

需要將redirectport和proxyport都修改為您的nginx監(jiān)聽端口號。

<valve></valve>

需要增加以上的value標簽,注意httpsserverport也需要修改為nginx監(jiān)聽端口號。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊13 分享