如果客户选择过期的证书,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 :(得分:5)
请参阅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
设置为on
或optional
时,这将有效。
另一种方法仅在$ssl_verify_client
设置为optional
时有效,您可以使用$ssl_client_verify
进行重定向。
if ($ssl_client_verify = NONE) {
return 303 https://www.google.com;
}
当$ssl_verify_client
设置为on
时,它将无效。
答案 1 :(得分:1)
有一种方法可以向客户展示不同的页面。你这样做的方式与上面说的基本相同,但是你将谷歌网站改为你创建的页面:
server {
...
error_page 495 496 497 /error400.html;
...
}
请务必在每个服务器实例中包含所有自定义页面。