Page 1 of 2

HTTPS на других портах

Posted: Mon Apr 29, 2019 6:32 pm
by luka
Добрый день. Решил добавить SSL сертификат (let's encrypt) для домена и перейти на HTTPS (Ubuntu 16.04.6 LTS)
В панели управления Vesta в секции управления доменами просто поставил галочку Lets Encrypt Support и всё автоматически настроилось, но появилась одна проблема.

Когда я пытаюсь достучаться до сайта, используя указание порта (допустим https://mydomain.com:3032) то в браузере fireFox возникает предупреждение о вероятной угрозе безопасности. Если я добавляю исключение в браузере, то могу получить контент с https://mydomain.com:3032 (просто у меня работает демон на node.js который выдает контент при запросе на этот порт. И если я не добавлю исключение в браузере для этого адреса с этим портом, доступа к этому контенту у меня не будет)
Работает лишь сам сайт по умолчанию https://mydomain.com

Подскажите пожалуйста, как мне разрешить работу https на других портах? (раньше, когда я использовал просто http все работало нормально)

Re: HTTPS на других портах

Posted: Mon Apr 29, 2019 7:26 pm
by Alex Connor
Дык у вас же стоит nginx, пропускайте через него и будет вам счастье

Re: HTTPS на других портах

Posted: Tue Apr 30, 2019 3:05 am
by luka
Alex Connor wrote:
Mon Apr 29, 2019 7:26 pm
Дык у вас же стоит nginx, пропускайте через него и будет вам счастье
Спасибо большое, за оперативный ответ, но не могли бы вы подробней натолкнуть на мысль, что и где нужно прописать или дать ссылку, куда копать) Просто дело в том, что я совершенно ничего не понимаю в настройке серверов и их компонентов (поэтому Веста таких как я спасает, когда можно все в пару кликов настроить)

P.S. уже писал такое же сообщение, но форумный движок выдал сообщение о том, что оно на модерации. Извините за дубляж, если вдруг такое случится

Re: HTTPS на других портах

Posted: Tue Apr 30, 2019 6:29 am
by Alex Connor
Что именно у вас запущено на nodejs?

Re: HTTPS на других портах

Posted: Tue Apr 30, 2019 1:47 pm
by luka
Alex Connor wrote:
Tue Apr 30, 2019 6:29 am
Что именно у вас запущено на nodejs?
да простой скриптик, типо такого:

Code: Select all

const https = require('https');
const fs = require('fs');

const options = {
  key: fs.readFileSync('/pathtocerts/certificate.key'),
  cert: fs.readFileSync('/pathtocerts/certificate.crt')
};

let app = https.createServer(options, (req, res) => {
  res.writeHead(200);
  res.end('hello world\n');
}).listen(3032);

let io = require('socket.io').listen(app);


io.on('connection', function (socket) {
    console.log(new Date(), '+', JSON.stringify(socket.handshake), '+');
});
То есть у меня есть доступ к сайту по адресу https://mydomain.com а к https://mydomain.com:3032 - нет (доступ появляется, если я добавлю этот адрес в исключение в браузере)
Таким образом и клиент socket.io в браузере тоже не может подключиться к https://mydomain.com:3032


Получается, мне хотелось бы, чтобы HTTPS работал не только на дефолтном порту но и на 3032, ну и на других


P.S. уже писал такое же сообщение, но форумный движок выдал сообщение о том, что оно на модерации. Извините за дубляж, если вдруг такое случится

Re: HTTPS на других портах

Posted: Tue Apr 30, 2019 6:52 pm
by Alex Connor
Попробуйте отредактировай файл виртуального хоста добавив/заменив для location / конструкцию:

Code: Select all

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $http_host;
        proxy_pass http://127.0.0.1:3032;
    }
и затем

Code: Select all

service nginx reload

Re: HTTPS на других портах

Posted: Tue Apr 30, 2019 9:47 pm
by luka
Alex Connor wrote:
Tue Apr 30, 2019 6:52 pm
Попробуйте отредактировай файл виртуального хоста добавив/заменив для location / конструкцию:
спасибо больше за ответ, но видимо не туда и не то я отредактировал
- зашел по пути /home/username/conf/web и изменил файл domainname.com.nginx.ssl.conf
- в секции location / {} заменил строчку proxy_pass https://myIPaddress:8443; на proxy_pass http://127.0.0.1:3032;
- добавил туда же строчки с proxy_set_header

теперь получаю ошибку 500 при попытке доступа к сайту =(

Re: HTTPS на других портах

Posted: Thu May 02, 2019 6:35 am
by Alex Connor
доступ к серверу предоставить сможете? посмотрю

Re: HTTPS на других портах

Posted: Thu May 02, 2019 6:24 pm
by shvondersin
У меня ровно аналогичная проблема...Стоит стандартная веста апач + нгинкс...
К домену прикручен ссл..
Но еще стоит icecast2 радио... оно слушается на портах 8000 и 8001(SSL) так вот сертификат уже не проверенный его надо подтверждать....
сижу два дня не могу разобраться как надо править конфиги чтобы добавить порт 8001 для того чтобы нормально открывалось в защищенном режиме...
Очень жду помощи

Re: HTTPS на других портах

Posted: Thu May 02, 2019 6:41 pm
by shvondersin
вот апач конфиг в домашней папке
вот апач конфиг в домашней папке

Code: Select all

<VirtualHost IP:8443>

    ServerName domen.ru
    ServerAlias www.domen.ru
    ServerAdmin [email protected]
    DocumentRoot /home/admin/web/domen.ru/public_html
    ScriptAlias /cgi-bin/ /home/admin/web/domen.ru/cgi-bin/
    Alias /vstats/ /home/admin/web/domen.ru/stats/
    Alias /error/ /home/admin/web/domen.ru/document_errors/
    #SuexecUserGroup admin admin
    CustomLog /var/log/apache2/domains/domen.ru.bytes bytes
    CustomLog /var/log/apache2/domains/domen.ru.log combined
    ErrorLog /var/log/apache2/domains/domen.ru.error.log
    <Directory /home/admin/web/domen.ru/public_html>
        AllowOverride All
        SSLRequireSSL
        Options +Includes -Indexes +ExecCGI
        php_admin_value open_basedir /home/admin/web/domen.ru/public_html:/home/admin/tmp
        php_admin_value upload_tmp_dir /home/admin/tmp
        php_admin_value session.save_path /home/admin/tmp
    </Directory>
    <Directory /home/admin/web/domen.ru/stats>
        AllowOverride All
    </Directory>
    SSLEngine on
    SSLVerifyClient none
    SSLCertificateFile /home/admin/conf/web/ssl.domen.ru.crt
    SSLCertificateKeyFile /home/admin/conf/web/ssl.domen.ru.key
    SSLCertificateChainFile /home/admin/conf/web/ssl.domen.ru.ca

    <IfModule mod_ruid2.c>
        RMode config
        RUidGid admin admin
        RGroups www-data
    </IfModule>
    <IfModule itk.c>
        AssignUserID admin admin
    </IfModule>

    IncludeOptional /home/admin/conf/web/sapache2.domen.ru.conf*

</VirtualHost>
NGINX

Code: Select all

server {
    listen      IP:443 ssl;
    server_name domen.ru www.domen.ru;
    ssl_certificate      /home/admin/conf/web/ssl.domen.ru.pem;
    ssl_certificate_key  /home/admin/conf/web/ssl.domen.ru.key;
    error_log  /var/log/apache2/domains/domen.ru.error.log error;

    location / {
        proxy_pass      https://IP:8443;
        location ~* ^.+\.(jpg|jpeg|gif|png|ico|svg|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|odt|ods|odp|odf|tar|wav|bmp|rtf|js|mp3|avi|mpeg|flv|html|htm)$ {
            root           /home/admin/web/domen.ru/public_html;
            access_log     /var/log/apache2/domains/domen.ru.log combined;
            access_log     /var/log/apache2/domains/domen.ru.bytes bytes;
            expires        max;
            try_files      $uri @fallback;
        }
    }

    location /error/ {
        alias   /home/admin/web/domen.ru/document_errors/;
    }

    location @fallback {
        proxy_pass      https://IP:8443;
    }

    location ~ /\.ht    {return 404;}
    location ~ /\.svn/  {return 404;}
    location ~ /\.git/  {return 404;}
    location ~ /\.hg/   {return 404;}
    location ~ /\.bzr/  {return 404;}

    include /home/admin/conf/web/snginx.domen.ru.conf*;
}
на icecast порт ССЛ 8001... как его добавить ума не приложу