2016-04-08 2 views
2

Я пытаюсь ввести TLS на каждом уровне проксируемого пути. То, что я вижу, это Nginx, позволяющий восходящему потоку иметь самозаверяющий сертификат. Есть ли способ заблокировать полномочия, которые принимаются при передаче трафика вверх по течению?Force nginx для проверки сертификатов выше по течению

end-user --1--> nginx01 --2--> nginx02 --N--> nginxN 

nginx01 имеет доверенный сертификат, и конечный пользователь подключается без проблем. nginx02 имеет самозаверяющий сертификат, а когда я proxy_pass до https://nginx02, я не вижу никаких претензий в браузере конечного пользователя или в журналах nginx01. Я бы ожидал отклонения. Если я скручиваю nginx02 из nginx01, как и ожидалось, я получаю отказ ssl.

Есть ли способ заставить nginx01 проверить сертификаты nginx02?

CentOS 7 работает с nginx 1.6.3-8.

/etc/hosts 
10.21.10.99 upstream.example.com 

curl https://upstream.example.com 
# ssl rejection 

curl https://upstream.example.com --cacert ./upstream.example.com.crt 
# works fine (200) 

# nginx configuration 
server { 
    listen 443; 
    ssl on; 
    ssl_certificate /etc/nginx/security/full_chain.crt; 
    ssl_certificate_key /etc/nginx/security/ingress.example.com.key; 
    server_name ingress.example.com; 
    location/{ 
    proxy_pass https://upstream.example.com; 
    } 
} 

ответ

3

Использование

proxy_ssl_verify on; 
proxy_ssl_trusted_certificate /path/to/your_selfsigned_ca_cert.pem 

Для получения дополнительной информации вы можете обратиться к Nginx прокси документы here

Смежные вопросы