本地服务器可通过 https :80 访问,但不能通过

本地服务器可通过 https :80 访问,但不能通过

我可以访问https://svn服务器:80/通过我的网络浏览器本地进行,但是当我删除:80 时它根本不起作用......有什么想法吗?

更新

当我去https://svn服务器:443/它说:

SSL received a record that exceeded the maximum permissible length.

(Error code: ssl_error_rx_record_too_long)

我按照官方文档中的默认说明在 Ubuntu 上创建私有 ssh 密钥...

更新

我的 ports.conf

NameVirtualHost *:80
Listen 80

<IfModule mod_ssl.c>
    # SSL name based virtual hosts are not yet supported, therefore no
    # NameVirtualHost statement here
    Listen 443
</IfModule>

netstat -lp 结果

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 *:www                   *:*                     LISTEN      5285/apache2    
tcp        0      0 *:https                 *:*                     LISTEN      5285/apache2    
tcp        0      0 *:22                    *:*                     LISTEN      2351/sshd       
tcp6       0      0 [::]:22                 [::]:*                  LISTEN      2351/sshd       
udp        0      0 *:bootpc                *:*                                 2239/dhclient3  
Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node   PID/Program name    Path
unix  2      [ ACC ]     STREAM     LISTENING     14927    5288/apache2        /var/run/apache2/cgisock.5285
unix  2      [ ACC ]     STREAM     LISTENING     5032     2114/dbus-daemon    /var/run/dbus/system_bus_socket
unix  2      [ ACC ]     STREAM     LISTENING     4857     2039/acpid          /var/run/acpid.socket

答案1

由于某种原因,此 svn 服务器在端口 80 上配置了 https。需要告知浏览器它正在寻找端口 80/TCP 上的 https 服务器,这就是为什么你需要同时指定https:80

背景:

标准 Web 流量通过端口 80/TCP 标准 https 流量通过端口 443/TCP

大多数 Web 浏览器都认为不合格的 URL 是标准 http 连接,并将其发送到端口 80。需要 https 的 Web 服务器通常会执行重定向(如 403)以将浏览器发送到页面的 HTTPS 版本,但是 Web 浏览器还假设 HTTPS 流量发生在 443/TCP 上。非标准端口上的 HTTPS 流量必须在 URL 中指定,否则浏览器将尝试将其发送到 443/TCP。

重申一下,如果没有 HTTP 页面将您的浏览器重定向到正确的 HTTPS 内容,并且 HTTPS 内容位于非标准端口上,您将始终需要指定协议和端口。

更新

我看了一下这个问题:在 Apache 上使用自签名证书设置 https

这些答案可能会解决您的配置问题。听起来 HTTP 可能在 443 上监听,而 HTTPS 在 80 上监听

答案2

这是因为 https 是端口 443,而端口 80 是 http。我将使用 wireshark 查看在强制流量到端口 80 时它确实使用的是 https 还是 http。

除此之外,这还涉及正确设置 Apache/IIS 配置的问题。

答案3

我现在意识到我之所以能够这样做是因为我浏览网站的本地 Linux 机器有 svnserver 的记录,因为我之前已经通过 ssh 连接过它。:doh:!

当我将 :80 更改为 :443 时,SSL 也会引发错误,这意味着 80 没有加密数据,即使它显示 https 并且没有引发任何错误。

相关内容