#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.