Re: Не работает редирект на HTTPS. OpenSSL.
Zalman_
nginx-forum на forum.nginx.org
Вт Окт 20 07:36:37 UTC 2020
Илья Шипицин Wrote:
-------------------------------------------------------
> а что-то банальное типа telnet на 443 порт ? curl, wget ?
>
> вт, 20 окт. 2020 г. в 12:06, Zalman_ <nginx-forum на forum.nginx.org>:
>
> > imsystem Wrote:
> > -------------------------------------------------------
> > > Клиент, в роли браузера, должен знать о вашем центре сертификации.
> Вы
> > > добавляли его сертификат в браузер?
> > >
> > > "Zalman_" <nginx-forum на forum.nginx.org> 20 октября 2020 г.
> 08:07:44
> > > написал:
> > >
> > > > Доброго времени суток!
> > > >
> > > > Нужна помощь по вопросу SSL шифрования.
> > > >
> > > > Объясню, что есть и что уже имеется.
> > > >
> > > > Основная задача – поднять RocketChat на локальном сервере и
> > > обеспечить
> > > > шифрование при доступе к локальному серверу из вне.
> > > >
> > > > Для этих целей использовал Ubuntu 18.04 LTS на виртуалке на
> сервере.
> > > В
> > > > качестве веб-сервера использовал Nginx - 1.14.0 (Ubuntu), а в
> > > качестве СУБД
> > > > использую MongoDB - db version v4.0.20. Использование Nginx и
> > > MongoDB
> > > > описано в мануале по установке RocketChat.
> > > > Все это удалось сделать и все хорошо работает. То есть Nginx +
> > > MongoDB +
> > > > RocketChat хорошо работают как в локальной сети, так и из вне
> (с
> > > помощью
> > > > проброса портов). Однако не удается подключить SSL – сертификат.
> Так
> > > как
> > > > сервер поднимался локально (доступ из вне и локально
> осуществляется
> > > через
> > > > IP-адрес сервера и порт) и отсутствует какой-то домен, то
> получение
> > > > SSL-сертификата от Let’S Encrypt является проблематичным,
> поэтому
> > > выбрал
> > > > самоподписанный SSL-сертификат на основе OpenSSL.
> > > > Приватный ключ, сертификат, а также ключ Диффи-Хеллмана сделал.
> > > Конфиги
> > > > nginx.conf, а также конфиг в папке
> > > > /etc/nginx/sites-available/rocketchat.conf настроил, однако по
> > > каким-то
> > > > причинам доступ к чату есть через HTTP, но нет через HTTPS.
> > > >
> > > > С этой темой сижу уже достаточно долго. Пробовал много способов
> и
> > > много
> > > > различных конфигов, но все равно не работает.
> > > > Причем пробовал как с отключенным UFW, так и с включенным
> (разрешал
> > > > подключение по портам 80, 443, *нужный мне порт*). Также в
> iptables
> > > тоже
> > > > разрешил 3 предыдущих порта, но эффекта ноль.
> > > >
> > > > А вот тут я приведу конфиги.
> > > > /etc/nginx/nginx.conf
> > > > user www-data;
> > > > worker_processes auto;
> > > > pid /run/nginx.pid;
> > > > include /etc/nginx/modules-enabled/*.conf;
> > > >
> > > > events {
> > > > worker_connections 768;
> > > > # multi_accept on;
> > > > }
> > > >
> > > > http {
> > > > ##
> > > > # Basic Settings
> > > > ##
> > > > #sendfile on;
> > > > tcp_nopush on;
> > > > tcp_nodelay on;
> > > > keepalive_timeout 65;
> > > > types_hash_max_size 2048;
> > > > # server_tokens off;
> > > >
> > > > # server_names_hash_bucket_size 64;
> > > > # server_name_in_redirect off;
> > > >
> > > > include /etc/nginx/mime.types;
> > > > default_type application/octet-stream;
> > > >
> > > > ##
> > > > # SSL Settings
> > > > ##
> > > > ##
> > > > # Logging Settings
> > > > ##
> > > >
> > > > access_log /var/log/nginx/access.log;
> > > > error_log /var/log/nginx/error.log;
> > > >
> > > > ##
> > > > # Gzip Settings
> > > > ##
> > > >
> > > > gzip on;
> > > >
> > > > # gzip_vary on;
> > > > # gzip_proxied any;
> > > > # gzip_comp_level 6;
> > > > # gzip_buffers 16 8k;
> > > > # gzip_http_version 1.1;
> > > > # gzip_types text/plain text/css application/json
> > > > application/javascript text/xml application/xml applicatio$
> > > >
> > > > ##
> > > > # Virtual Host Configs
> > > > ##
> > > >
> > > > include /etc/nginx/conf.d/*.conf;
> > > > include /etc/nginx/sites-enabled/*.conf;
> > > > }
> > > >
> > > > #mail {
> > > > # # See sample authentication script at:
> > > > # #
> http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
> > > > #
> > > > # # auth_http localhost/auth.php;
> > > > # # pop3_capabilities "TOP" "USER";
> > > > # # imap_capabilities "IMAP4rev1" "UIDPLUS";
> > > > #
> > > > # server {
> > > > # listen localhost:110;
> > > > # protocol pop3;
> > > > # proxy on;
> > > > # }
> > > > #
> > > > # server {
> > > > # listen localhost:143;
> > > > # protocol imap;
> > > > # proxy on;
> > > > # }
> > > > #}
> > > >
> > > > /etc/nginx/sites-available/default.conf
> > > >
> > > > upstream backend {
> > > > server 127.0.0.1;
> > > > }
> > > >
> > > > #HTTP
> > > > server {
> > > > #Делаю конфиг согласно
> > > > https://techlist.top/translation-nginx-to-https/
> > > > listen 80;
> > > > server_name *IP локального сервера*;
> > > > return 301 https://$server_name$request_uri;
> > > > }
> > > >
> > > > #HTTPS
> > > > server {
> > > > #Порт, который будет слушать Nginx для SSL
> > > > listen 443 ssl http2;
> > > >
> > > > #Имя сайта
> > > > server_name *IP локального сервера*;
> > > >
> > > > #Корневая директория и индексный файл (ничего не менял)
> > > > root /var/www/html;
> > > > index index.html index.htm index.nginx-debian.html;
> > > >
> > > > #Лог-файлы
> > > > access_log /var/www/html/access_https.log;
> > > > error_log /var/www/html/error_https.log;
> > > >
> > > > #SSL-секция
> > > >
> > > > #Сертификат и ключ
> > > > ssl_certificate /etc/ssl/certs/rccrt.crt;
> > > > ssl_certificate_key /etc/ssl/private/rckey.key;
> > > >
> > > > #SSL-сессия
> > > > ssl_session_timeout 1d;
> > > > ssl_session_cache shared:SSL:50m;
> > > > ssl_session_tickets off;
> > > >
> > > > #Diffie-Hellman ключ для DHE-шифров
> > > > ssl_dhparam /etc/ssl/certs/dhparam.pem;
> > > >
> > > > #Используемые протоколы
> > > > ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
> > > >
> > > > #Наборы шифров
> > > > ssl_ciphers '*набор шифров*';
> > > >
> > > > #Приоритет серверных шифров
> > > > ssl_prefer_server_ciphers on;
> > > >
> > > > #Включение HSTS (Strict-Transport-Security)(15768000
> seconds
> > > = 6
> > > > месяцев)
> > > > add_header Strict-Transport-Security max-age=15768000;
> > > >
> > > > resolver 8.8.8.8 8.8.4.4 valid=300s;
> > > >
> > > > # server_name _;
> > > >
> > > > location / {
> > > > # Параметры проксирования
> > > > proxy_send_timeout 600;
> > > > proxy_read_timeout 600;
> > > > proxy_buffer_size 128k;
> > > > proxy_buffers 4 256k;
> > > > proxy_busy_buffers_size 256k;
> > > > proxy_set_header Host $host;
> > > > proxy_set_header X-Real-IP $remote_addr;
> > > > proxy_set_header X-Forwarded-For
> $proxy_add_x_forwarded_for;
> > > > proxy_set_header X-Forwarded-Proto $scheme;
> > > > proxy_set_header HTTPS YES;
> > > > # IP-адрес целевой площадки для проксирования
> > > > proxy_pass http://192.168.1.108;
> > > > }
> > > >
> > > > # pass the PHP scripts to FastCGI server listening on
> > > > 127.0.0.1:9000
> > > > #
> > > > #location ~ \.php$ {
> > > > # include snippets/fastcgi-php.conf;
> > > > #
> > > > # # With php7.0-cgi alone:
> > > > # fastcgi_pass 127.0.0.1:9000;
> > > > # # With php7.0-fpm:
> > > > # fastcgi_pass unix:/run/php/php7.0-fpm.sock;
> > > > #}
> > > >
> > > > # deny access to .htaccess files, if Apache's document
> root
> > > > # concurs with nginx's one
> > > > #
> > > > #location ~ /\.ht {
> > > > # deny all;
> > > > #}
> > > > }
> > > >
> > > > Далее делаю «копию» в папку sites-enabled
> > > > sudo ln -s /etc/nginx/sites-available/default.conf
> > > > /etc/nginx/sites-enabled/
> > > >
> > > > Проверяю синтаксис
> > > > sudo nginx -t
> > > > (на что получаю положительный ответ)
> > > > nginx: the configuration file /etc/nginx/nginx.conf syntax is
> ok
> > > > nginx: configuration file /etc/nginx/nginx.conf test is
> successful
> > > >
> > > > И последовательно делаю перезапуск Nginx
> > > > sudo service nginx restart
> > > > sudo systemctl restart nginx
> > > >
> > > > В итоге, набирая IP и порт и пытаясь подключиться по HTTPS, в
> Google
> > > Chrome
> > > > вижу ошибку ERR_CONNECTION_CLOSED. В чем может быть проблема?
> > > >
> > > > Posted at Nginx Forum:
> > > > https://forum.nginx.org/read.php?21,289759,289759#msg-289759
> > > >
> > > > _______________________________________________
> > > > nginx-ru mailing list
> > > > nginx-ru на nginx.org
> > > > http://mailman.nginx.org/mailman/listinfo/nginx-ru
> > >
> > > _______________________________________________
> > > nginx-ru mailing list
> > > nginx-ru на nginx.org
> > > http://mailman.nginx.org/mailman/listinfo/nginx-ru
> >
> > Нет, не добавлял
> > Не делал этого по причине того, что из всех прочтенных мною статей
> этим
> > никто не занимался
> > Тем более мне кажется, что не в браузере дело (IE, Chrome, Yandex)
> > До проверки сертификата дело даже не доходит, то есть нет
> всплывающего окна
> > о том, что сертификат не проверен (если сертификат работает, то
> такое
> > окошко
> > появляется и либо ты переходишь дальне на сайт, либо нет). В моем же
> случае
> > при переходе по https соединение с сервером обрывается, но при
> переходе по
> > http все работает корректно
> >
> > Posted at Nginx Forum:
> > https://forum.nginx.org/read.php?21,289759,289761#msg-289761
> >
> > _______________________________________________
> > nginx-ru mailing list
> > nginx-ru на nginx.org
> > http://mailman.nginx.org/mailman/listinfo/nginx-ru
> _______________________________________________
> nginx-ru mailing list
> nginx-ru на nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
443 и 80 порт слушает nginx:master, то есть сервер их слушает, но результат
отрицательный
к слову на этих портах больше ничего не висит, только nginx
Posted at Nginx Forum: https://forum.nginx.org/read.php?21,289759,289764#msg-289764
Подробная информация о списке рассылки nginx-ru