“SSL证书错误”的自定义nginx错误页面

问题描述:

如果客户选择过期的证书,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

请参考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,它不会工作。

有一种方法可以向客户端显示不同的页面。你做的方式基本上与上述相同陈述,而是你改变谷歌网站为您创建一个页面:

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

就一定要包括所有你在每个服务器实例自定义页面。