NGINX Plus 18版本發佈,支持動態證書加載

NGINX已經發布了 NGINX Plus 18 版本(R18),這是它們一體化的負載平衡器、內容緩存和web服務器。該版本的特性包括支持動態證書加載、對OpenID Connect實現的增強以及爲虛擬服務器指定端口範圍的能力。

通過支持動態證書加載,SSL/TLS證書現在可以按需加載,不需要在配置文件中明確地列出。根據TLS握手期間由服務器名稱指示(Server Name Indication,簡稱SNI)提供的主機名,NGINX Plus現在可以動態地加載正確的證書。這允許在單個服務配置下託管多個安全網站。

在NGINX Plus之前的版本中,每個安全主機名都需要在配置文件中有自己的server代碼塊,靜態地把證書和私鑰指定爲磁盤上的文件。這也意味着,當添加新主機名時,都必須重新加載配置。

藉助該新功能,現在可以在配置中只有一個server塊來安全地託管任意數量的站點:

server {
   listen 443 ssl;


   ssl_certificate      /etc/ssl/$ssl_server_name.crt; # Lazy load from SNI   
   ssl_certificate_key  /etc/ssl/$ssl_server_name.key; # ditto                    
   ssl_protocols        TLSv1.3 TLSv1.2 TLSv1.1;
   ssl_prefer_server_ciphers on;


   location / {
       proxy_set_header Host $host;
       proxy_pass http://my_backend;
   }

有了這個設置,基於$ssl_server_name變量的值,證書能夠根據需要從硬盤延遲加載。然後,證書和key將會緩存在文件系統緩存的內存中。只要變量的值在SNI(這是在讀取請求行和頭信息之前發生的)期間是可用的,那麼就可以在那裏使用它。

還可以在內存中(在鍵-值對存儲中)存儲SSL/TLS證書數據,而不是作爲文件存在磁盤上。這允許證書通過Plus API以程序的方式進行安裝。NGINX建議Plus的整個集羣部署都這麼操作,因爲證書數據將只需要上傳一次,就可以自動傳播,或者用於自動與證書頒發者(如Hashicorp Vault)集成。

在這兩種情況下,在初始證書加載期間都會產生性能損失。證書加載過程只在TLS握手期間發生,一旦會話建立,請求處理將正常進行。根據NGINX的說法,該損失將造成初始TLS握手過程延長20-30%。

該版本還包括主動健康檢查功能的改進。該版本引入了require指令,允許測試任何變量的值,包括標準變量和用戶定義的變量。match塊中的require指令允許檢查一個或多個變量必須有非零值才讓測試通過。

進一步的健康檢查改進包括允許用proxy_session_drop 指令來終止第4層連接。之前,如果已建立的客戶端連接到的服務器不健康,那麼,它們可能會遇到超時。這是因爲,之前只在新客戶端嘗試建立連接時才考慮後端服務器的健康狀態。新的proxy_session_drop 指令將允許立即關閉該連接。啓用該指令後,還可以通過一個主動健康檢查的失敗或上游組中服務器的刪除(例如,通過DNS查找來刪除)來觸發連接終止。

該版本提供的其他功能包括:

  • 現在,OpenID Connect實現支持不透明會話令牌、刷新令牌和註銷URL

  • NGINX Plus服務器現在可以配置爲監聽指定範圍的端口(如80-90)

  • 現在可以用配置中的變量直接創建鍵-值對

關於該版本中包含的更多細節和其他功能,請參閱NGINX博客中的官方聲明。NGINX Plus可以作爲NGINX應用平臺的一部分進行試用

閱讀英文原文NGINX Plus Release 18 Available with Support for Dynamic Certificate Loading

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章