如何解决如何通过 ssh 隧道 https 到本地系统?
我发现了一种通过 ssh 将 http 隧道传输到本地计算机的技巧。
https://www.maketecheasier.com/reverse-ssh-tunnel-allow-external-connections/
我在本地计算机上使用运行 Apache 的 Web 服务器,但想从外部访问它,而不使用端口转发,而是使用 VPS。原因是我使用移动设备(即笔记本电脑,但也可以是手机)作为网络服务器。
假设本地设备有端口 8080 作为 http 端口,而 VPS 使用另一个端口(例如标准 80)。此命令在我的本地计算机(macOS、Linux 甚至使用 Termux 的 Android 设备)上有效:
ssh -R 80:127.0.0.1:8080 root@VPS
当我通过 http://VPS 访问 VPS 时,我访问了本地计算机的 Web 界面。美好的。那行得通。
但我想通过 https 访问它
ssh -R 443:127.0.0.1:8443 root@VPS
并安装 Letsencrypt 证书。我可以在 VPS 上执行此操作,还是应该在本地设备上执行此操作并启用 ssl.conf 并使用 8443 作为安全端口? 然后我想通过 https://VPS 通过 VPS 访问我的设备。
这可能吗?
解决方法
我找到了答案。
我发现了这种方法:
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 可以通过 VPS 主机使用 my.example.com 的证书进行访问。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。