Re: Не работает редирект на HTTPS. OpenSSL.

Zalman_ nginx-forum на forum.nginx.org
Вт Окт 20 07:06:29 UTC 2020


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