ssl - "The SSL certificate error"的自定义 nginx 错误页面

标签 ssl nginx ssl-certificate client-certificates

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

如何捕获错误并向客户显示不同的页面?

最佳答案

请引用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时,它将不起作用。

关于ssl - "The SSL certificate error"的自定义 nginx 错误页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33560256/

相关文章:

Azure Web 测试 - 使用 CloudFlare SSL 时无法创建 SSL/TLS 安全通道

ruby-on-rails - Rails 部署 : 4 small servers or 1 big server?

azure - 在动态创建的 Web 应用程序服务中添加 SSL 绑定(bind)自定义域

android - 在 Android 中使用自定义版本的 App Engine 应用程序

ssl - NiFi 到 Zookeeper SSL 连接

java - 我在来自 Java 客户端的 Http Post 请求中收到无效参数错误

ruby-on-rails - 带有 Nginx 和 SSL 握手的 Websockets

django - 如何测试 gunicorn 是否正在工作并与 nginx 通信?

ubuntu - 当我通过 https 访问我的站点时,浏览器从服务器下载源代码

ssl - 服务器中的 "ssl3_get_client_hello:no shared cipher"取决于服务器证书和 key