Как подключиться по протоколу https к локальной системе через ssh-туннель?

#ssh #tunnel

Вопрос:

Я нашел способ туннелировать http по ssh на свой локальный компьютер.

https://www.maketecheasier.com/reverse-ssh-tunnel-allow-external-connections/

Я использую веб-сервер под управлением Apache на своем локальном компьютере, но хочу получить доступ к нему извне, не используя переадресацию портов, а используя VPS. Причина в том, что я использую мобильное устройство (т. Е. ноутбук, но также может быть и мобильный телефон) в качестве веб-сервера.

Предполагается, что локальное устройство имеет порт 8080 в качестве http-порта, а VPS использует другой порт (например, стандартный 80). Эта команда на моем локальном компьютере (macOS, Linux или даже Android-устройстве, использующем Termux) работает:

ssh -R 80:127.0.0.1:8080 root@VPS

Когда я получаю доступ к VPS с помощью http://VPS Я получаю доступ к веб-интерфейсу своего локального компьютера. Хорошо. Это работает.

Но я хочу получить доступ к нему по https с помощью

ssh -R 443:127.0.0.1:8443 root@VPS

и установите сертификат Letsencrypt. Могу ли я сделать это на VPS или мне следует сделать это на локальном устройстве и включить ssl.conf и использовать 8443 в качестве безопасного порта ? Затем я хочу получить доступ к своему устройству через VPS через https://VPS.

Возможно ли это ?

Ответ №1:

Я нашел ответ.

Я нашел такой подход:

Apache ssl.conf:

 <VirtualHost *:443>
    SSLEngine on
    DocumentRoot /var/www/html/test/
    ServerName my.example.com
    LogLevel Debug

    Include whitelist.conf

    ErrorLog ${APACHE_LOG_DIR}/ssl-error.log
    CustomLog ${APACHE_LOG_DIR}/ssl-access.log combined

    SSLCertificateFile      /root/.acme.sh/my.example.com/fullchain.cer
    SSLCertificateKeyFile /root/.acme.sh/my.example.com/my.example.com.key
    # SSLCertificateChainFile /root/.acme.sh/my.example.com/fullchain.cer

      SSLProxyEngine On
      ProxyRequests Off
      # NON SSL access to be redirected to https://my.example.com:443
      ProxyPass / http://my.anotherdomain.com:81/
      ProxyPassReverse / http://my.anotherdomain.com:81/


    #  RewriteCond %{HTTPS} off
    #  RewriteRule (.*) https://%{SERVER_NAME}$1 [R,L]
</VirtualHost>
 

Это перенаправляет мое устройство без SSL-порта 8080 на VPS (my.example.com:81)

 ssh -p 22 -R 81:192.168.0.7:8080 root@myVPS -N
 

Или на самом устройстве я могу работать в Termux:

 ssh -p 22 -R 81:127.0.0.1:8080 root@myVPS -N
 

Это делает мое устройство SSL доступным с помощью сертификатов my.example.com через хост VPS.