我打算爲不同的虛擬主機使用不同的SSL證書,所以我開始將http
塊中現有的ssl指令移到server
塊之一,然後我開始將其他server
塊中的其他SSL證書指令添加進去。但只要我這樣做,所涉及的Web服務器不能再被訪問。 Chrome的報道connection closed
和Nginx的錯誤日誌這樣寫的:如何把ssl指令放在服務器模塊中而不是在nginx配置中的http模塊中?
2016/01/08 20:13:32 [error] 16968#0: *364 no "ssl_certificate" is defined in server listening on SSL port while SSL handshaking, client: x.x.x.x, server: 0.0.0.0:443
的SSL指令我感動包括:
ssl_certificate
ssl_certificate_key
ssl_protocols
ssl_dhparam
ssl_prefer_server_ciphers
ssl_ciphers
從http
塊移動這些指令時server
塊怎麼可能出問題?
發佈您的整個服務器配置。此外,請確保您沒有配置爲偵聽443的全局服務器。 –
我確實有一個偵聽443的默認服務器,但爲什麼當我通過server_name請求其他服務器時,這很重要?如果那個確實導致了這個問題,那麼我應該爲這個默認服務器配置什麼ssl_certificate配置(因爲我有多個分別用於其他服務器的ssl證書)? – goodbyeera
如果不提供SSL證書,您不能在443上進行默認監聽。如果您沒有證書,您應該在443上禁用全局監聽。 –