[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-setevaya-bezopasnost-kak-nastroit-https-v-nginx-s-redirektom-s-http":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":16,"progress":17,"seo":18},848,"kak-nastroit-https-v-nginx-s-redirektom-s-http",24,"setevaya-bezopasnost","Сетевая безопасность","🔒","Как настроить HTTPS в Nginx с редиректом с HTTP?","Настройка HTTPS в Nginx — это конфигурация TLS-терминации на reverse proxy с обязательным перенаправлением HTTP-трафика на защищённое соединение.\n\n### Базовая конфигурация HTTPS\n\n\u003Cdetails>\u003Csummary>Полная конфигурация Nginx с HTTPS\u003C\u002Fsummary>\n\n```nginx\n# \u002Fetc\u002Fnginx\u002Fsites-available\u002Fmybank-api\nserver {\n    listen 443 ssl http2;\n    server_name api.mybank.com;\n\n    # Сертификаты\n    ssl_certificate     \u002Fetc\u002Fnginx\u002Fssl\u002Fapi.mybank.com.crt;\n    ssl_certificate_key \u002Fetc\u002Fnginx\u002Fssl\u002Fapi.mybank.com.key;\n\n    # Цепочка промежуточных сертификатов\n    ssl_trusted_certificate \u002Fetc\u002Fnginx\u002Fssl\u002Fca-chain.crt;\n\n    # Протоколы и шифры\n    ssl_protocols TLSv1.2 TLSv1.3;\n    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;\n    ssl_prefer_server_ciphers on;\n\n    # Оптимизация SSL\n    ssl_session_cache shared:SSL:10m;\n    ssl_session_timeout 10m;\n    ssl_session_tickets off;\n\n    # OCSP Stapling\n    ssl_stapling on;\n    ssl_stapling_verify on;\n\n    # Заголовки безопасности\n    add_header Strict-Transport-Security \"max-age=31536000; includeSubDomains\" always;\n    add_header X-Content-Type-Options nosniff;\n    add_header X-Frame-Options DENY;\n    add_header X-XSS-Protection \"1; mode=block\";\n\n    # Проксирование на Java-приложение\n    location \u002F {\n        proxy_pass http:\u002F\u002F127.0.0.1:8080;\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n    }\n}\n```\n\n\u003C\u002Fdetails>\n\n### Редирект с HTTP на HTTPS\n\n```nginx\nserver {\n    listen 80;\n    server_name api.mybank.com;\n\n    # Редирект всех HTTP-запросов на HTTPS\n    return 301 https:\u002F\u002F$host$request_uri;\n}\n```\n\n### Настройка с Let's Encrypt\n\n```bash\n# Получить сертификат и автоматически настроить Nginx\nsudo certbot --nginx -d api.mybank.com\n\n# Проверка конфигурации\nsudo nginx -t\n\n# Перезагрузка\nsudo systemctl reload nginx\n```\n\n### Проверка настроек SSL\n\n```bash\n# Проверка соединения\nopenssl s_client -connect api.mybank.com:443\n\n# Проверка поддерживаемых протоколов\nnmap --script ssl-enum-ciphers -p 443 api.mybank.com\n```\n\nВ Spring Boot приложении за Nginx необходимо настроить доверие к заголовкам `X-Forwarded-*`:\n\n```yaml\nserver:\n  forward-headers-strategy: framework  # или native\n```\n\n> **На собеседовании:** интервьюер проверяет понимание TLS-терминации на Nginx, знание заголовков безопасности (HSTS, X-Frame-Options) и настройки проксирования к Java-приложению. Частая ошибка — забыть про редирект с HTTP и про заголовок `X-Forwarded-Proto`.","","middle",[15],"network-security",[],null,{"title":19,"description":20,"ogTitle":19,"ogDescription":21,"keywords":22,"schemaAnswer":20,"featuredSnippetReady":23},"Как настроить HTTPS в Nginx с редиректом с HTTP? — Gymterview","Настройка HTTPS в Nginx — это конфигурация TLS-терминации на reverse proxy с обязательным перенаправлением HTTP-трафика на защищённое соединение.","Настройка HTTPS в Nginx — это конфигурация TLS-терминации на reverse proxy с обязательным перенаправлением HTTP-трафика ",[15,13],true]