1
docker swarm에서 실행중인 Nginx로 SSL을 설정하려고하지만 문제가 발생했습니다. 모든 것은 정확 해 보이지만, 502를 얻을 때까지는 모든 요청을 그냥 멈 춥니 다. 필자는 작성 파일에 포트 443을 공개했습니다. 여기SSL 지원 Nookx를 사용하는 Docker Swarm
*7 peer closed connection in SSL handshake while SSL handshaking to upstream, client: 10.255.0.2, server: subdomain.mysite.com, request: "GET /api-v1/user-login HTTP/2.0", upstream: "https://10.0.0.6:5051/api-v1/user-login", host: "subdomain.mysite.com"
내의 nginx의 default.conf의 관련 부분입니다 :
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_protocols SSLv3 TLSv1;
upstream siteStage {
ip_hash;
server siteStage:5051;
}
server {
listen 443 ssl http2 ;
server_name subdomain.mysite.com;
ssl on;
ssl_certificate /path/provided.crt;
ssl_certificate_key /path/client.key;
ssl_client_certificate /path/ca.crt;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_verify_client off;
location/{
proxy_ssl_certificate /etc/ssl/client.pem;
proxy_ssl_certificate_key /etc/ssl/client.key;
proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
proxy_ssl_ciphers HIGH:!aNULL:!MD5;
proxy_ssl_session_reuse on;
proxy_pass https://siteStage/;
}
}
그래서 해결책은 https 대신 http를 통해 도커 서비스에 문의하는 것이 었습니다. – mjb2kmn
@ mjb2kmn 네, 프록시 헤더를 추가하고, 프록시 인증서를 삭제하고, nginx 튜토리얼에 마지막 2 개를 넣은 클라이언트 인증서를 삭제했습니다. –