Задать вопрос
@capiev
Программист C#, WPF, python.

Nginx: https to https?

Есть сервер, где уже настроен комплект Jira, Confluence, Bitbucket.
С помощью проксирования через nginx сделано так
Jira: jira.lc -> 0.0.0.0:8880,
Confluence: wiki.lc -> 0.0.0.0:8890,
Bitbucket: git.lc -> 0.0.0.0:8870

Сейчас стоит задача перевести все на https. Проксирование nginx методом https -> http, не прокатывает, так как jira возмущается и не правильно работает. Соответственно для Jira была настроена Catalina на работу с https с портом 8883, в результате при обращении на этот порт все работает.

Но нам нужно чтобы nginx проксировал https://jira.lc на https://127.0.0.1:8883.

настроили nginx так:
server {
    listen 0.0.0.0:443 ssl;
    server_name jira.lc www.jira.lc;
    access_log /var/log/nginx/jira_localhost_access.log;
    error_log /var/log/nginx/jira_localhost_error.log;
    proxy_connect_timeout 3600;
    proxy_send_timeout 3600;
    proxy_read_timeout 3600;
    send_timeout 3600;
    client_max_body_size 0;
    location /
    {
        proxy_pass https://127.0.0.1:8883;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-for $remote_addr;
        port_in_redirect off;
        proxy_redirect https://jira.lc:8883/ /;
        fastcgi_read_timeout 3600;
        proxy_connect_timeout 3600;
        proxy_send_timeout 3600;
        proxy_read_timeout 3600;
        send_timeout 3600;
        client_max_body_size 0;
    }
}

но не работает. Браузер возвращает ошибку "Ошибка при установлении защищённого соединения"

Сразу уточню:
1. Что "listen 0.0.0.0:443 ssl;", что "listen 0.0.0.0:443;" одинаково не работают.
2. Я не сисадмин и изучать nginx, каталину и всякие принципы проксирования у меня нет времени, так как есть другая работа. Потому, собственно, и обращаюсь к вам.
  • Вопрос задан
  • 4457 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 2
Проксирование nginx методом https -> http, не прокатывает, так как jira возмущается и не правильно работает. Соответственно для Jira была настроена Catalina на работу с https с портом 8883, в результате при обращении на этот порт все работает.


1. Настройте Jira на работу по http only либо на работу в 2-х режимах - http и https - такое возможно, мануалы есть, пользуйтесь гуглом.
2. Как и посоветовал ТыжСисАдмин , настройте проксирование nginx https -> jira http - это будет самое правильное решение.
Ответ написан
Комментировать
@miksir
IT
По сути https - https работает через расшифровку и повторную шифровку, т.е. сертификаты должны быть и на nginx. Посмотрите пример любого ssl сервера на nginx.

Как вариант еще, если nginx только для балансировки, использовать haproxy, он умеет балансировку SSL без расшифровки https://www.haproxy.com/blog/enhanced-ssl-load-bal...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
POS_troi
@POS_troi
СадоМазо Админ, флудер, троль.
Я не сисадмин и изучать nginx, каталину и всякие принципы проксирования у меня нет времени

За это пометил вопрос как задание.

настроили nginx так:

Не правильно настроили.
Переводите свои сервисы находящиеся за nginx на голый http, на самом nginx уже прописываете сертификаты и т.п.

upstream jira-app {
  least_conn;
  server 127.0.0.1:8883 weight=10 max_fails=3 fail_timeout=30s;
}


server{
  listen 80;
  server_name jira.lc;
  rewrite ^(/.*)$ https://jira.lc permanent;
}

server {
  # Host settings
  listen   443  ssl http2;
  server_name jira.lc;

  # SSL settings
  ssl on;
  ssl_session_cache shared:SSL:10m;
  ssl_session_timeout 10m;
  ssl_prefer_server_ciphers on;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_certificate /etc/nginx/cert/cert.pem;
  ssl_certificate_key /etc/nginx/cert/privkey.pem;
  ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!kEDH';
  ssl_stapling on;
  ssl_stapling_verify on;
  add_header X-Content-Type-Options nosniff;
  add_header X-XSS-Protection "1; mode=block";
  add_header X-Frame-Options SAMEORIGIN;
  add_header X-IT-TECH-PUBLIC-OFFER "Получая эти HTTP заголовки вы соглашаетесь с тем что попадаете в рабство :)";

  # Compression.
  gzip on;
  gzip_min_length 10240;
  gzip_proxied expired no-cache no-store private auth;
  gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml;
  gzip_disable "msie6";

  location / {
    proxy_pass http://jira-app;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
  }

}


Ну а если не справитесь то вам прямая дорога на фрилансбиржу с котлетой денег - раз уж сами учить не желаете ничего :)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы