中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-10-05 11:43:09 來源:腳本之家 閱讀:361 作者:富士里 欄目:服務器

背景

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

詳解Nginx配置SSL證書實現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正常訪問了。另外想說的是,由于本人工作場景是一個硬負載均衡兩臺服務器,所以相同的配置需要在兩臺服務器上分別做一次。本文僅供參考,如對您有所幫助,實乃萬幸,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

辉县市| 西丰县| 莱芜市| 科技| 多伦县| 湾仔区| 抚远县| 乐亭县| 乌鲁木齐市| 广平县| 常宁市| 勃利县| 大埔县| 台中市| 青阳县| 九龙坡区| 平阳县| 丹江口市| 呼图壁县| 福安市| 南召县| 正阳县| 博白县| 佛坪县| 景泰县| 屏南县| 保德县| 辛集市| 襄垣县| 若尔盖县| 余庆县| 永善县| 那坡县| 沾化县| 肃南| 叶城县| 张掖市| 蒙城县| 西乡县| 原阳县| 荣昌县|