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

Сергей Олегович shadow.tehb на gmail.com
Вт Окт 20 06:52:18 UTC 2020


Клиент, в роли браузера, должен знать о вашем центре сертификации. Вы 
добавляли его сертификат в браузер?

"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

----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20201020/d1204776/attachment-0001.htm>


Подробная информация о списке рассылки nginx-ru