2015-11-06 102 views
5

如果客戶選擇過期的證書,nginx服務器將顯示內置的錯誤頁面。「SSL證書錯誤」的自定義nginx錯誤頁面

<html> 
<head><title>400 The SSL certificate error</title></head> 
<body bgcolor="white"> 
<center><h1>400 Bad Request</h1></center> 
<center>The SSL certificate error</center> 
<hr><center>nginx</center> 
</body> 
</html> 

如何捕獲錯誤並向客戶端顯示不同的頁面?

+0

您是否檢查過文檔http://nginx.org/en/docs/http/ngx_http_ssl_module.html#errors? –

+0

謝謝。 我處理了代碼400,事實上有必要處理其他錯誤代碼。 – user3138912

回答

4

請參考http://nginx.org/en/docs/http/ngx_http_ssl_module.html#errors

定義錯誤頁,代碼400將無法正常工作。工作方式爲

server { 
    ... 
    error_page 495 496 497 https://www.google.com; 
    ... 
} 

因此,用戶未能提交有效證書將被重定向到google.com。這將在ssl_verify_client設置爲onoptional時生效。


另一種方法只能當$ssl_verify_client設置爲optional,你可以使用$ssl_client_verify重定向。

if ($ssl_client_verify = NONE) { 
    return 303 https://www.google.com; 
} 

$ssl_verify_client設置爲on,它不會工作。

0

有一種方法可以向客戶端顯示不同的頁面。你做的方式基本上與上述相同陳述,而是你改變谷歌網站爲您創建一個頁面:

server { 
    ... 
    error_page 495 496 497 /error400.html; 
    ... 
} 

就一定要包括所有你在每個服務器實例自定義頁面。