2015-11-06 42 views
5

Jeśli klient wybierze wygasły certyfikat, serwer nginx wyświetli wbudowaną stronę błędu.Niestandardowa strona błędu nginx dla "Błąd certyfikatu SSL"

<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> 

Jak mogę złapać błąd i pokazać klientowi inną stronę?

+0

Czy sprawdziłeś dokumentację http://nginx.org/en/docs/http/ngx_http_ssl_module.html#errors? –

+0

Dzięki. Przetworzyłem kod 400, a w rzeczywistości konieczne było obsłużenie innych kodów błędów. – user3138912

Odpowiedz

4

Proszę odnieść się do http://nginx.org/en/docs/http/ngx_http_ssl_module.html#errors

Określ stronę błędu 400 dla kodu nie będzie działać. Podejście robocza jest

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

więc użytkownik nie przedstawił ważnego certyfikatu zostanie przekierowanie do google.com. To zadziała, gdy ssl_verify_client ustawi się na on lub optional.


Innym podejściem działa tylko wtedy, gdy jest ustawiony na $ssl_verify_clientoptional, można użyć $ssl_client_verify za przekierowanie.

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

Kiedy $ssl_verify_client jest ustawiony na on, to nie będzie działać.

0

Istnieje sposób na pokazanie klientowi innej strony. Sposób, w jaki to zrobić jest w zasadzie taka sama, jak stwierdzono powyżej, ale zamiast zmieniać stronie Google do strony, którą stworzył:

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

tylko pamiętaj, aby to wszystko jesteś niestandardowych stron w każdej instancji serwera.