netstat 说 443 已打开,但我无法使用 telnet 连接到它。为什么?

Bra*_*ann 5 ssh wcf tcp telnet windows-server-2003

我已经构建了一个自托管的 wcf 服务器,使用wsHttpBinding. 我正在运行 Win 2003 服务器 R2 SP2。

如果我将其配置为侦听http://localhost:443/MyService,则一切正常。我可以连接到http://localhost:443/MyServiceInternet Explorer,但收到标准的“错误请求”消息

现在,如果我尝试切换到 HTTPS,我会看到一个奇怪的现象。

这是我所做的:

  1. 我已经改变了我的 wcf 配置文件从http://localhosthttps://localhost和从Security=NoneSecurity=Transport(如许多 wcf 教程中所述)
  2. 我已经像这样注册了我的 HTTP 端口:

    httpcfg delete ssl -i 0.0.0.0:443
    
    httpcfg set ssl -i 0.0.0.0:443 -h ea2e450ef9d4...
    
    Run Code Online (Sandbox Code Playgroud)

请注意,我使用的证书是“真实证书”(即由受信任的 CA 颁发,即 Comodo)。服务器响应证书中提到的 NS 上的 ping。

现在,以下将超时:

Microsoft Telnet> open localhost 443
Run Code Online (Sandbox Code Playgroud)

这是来自netstat(Pid '4' 是 'System' 进程)的输出:

netstat -nao

  Proto  Local Adress         Remote Adress          State           Pid
  TCP    0.0.0.0:443          0.0.0.0:0              Listening       4
Run Code Online (Sandbox Code Playgroud)

这是我在 telnet 中发出 open 命令时捕获的TCPView屏幕截图:

替代文字 http://img26.imageshack.us/img26/3376/tcpview2si6.jpg

我有点不解。对我来说,如果netstat说服务器正在监听 443,那么到 443 的 telnet 连接不应该超时,我应该至少有一个空白提示,希望我输入一些加密的东西:)

到目前为止,我已经尝试:

  1. 完全按照 MSDN 教程从头开始重做所有步骤
  2. 使用端口 10443 而不是 443
  3. 禁用防火墙
  4. 使用自签名证书

我不知道接下来要尝试什么..有什么想法吗?

Cre*_*esh 2

telnet 客户端不会知道发送正确构造的请求来启动 https 握手,因此我想 ssl 安全服务器只是在等待更多数据。

telnet 客户端肯定不会知道如何处理来自 ssl 安全服务器的响应(它肯定不会提示您发送数据)。只有在 https 握手完成后才能进行通信。

您需要使用知道如何握手的客户端。openssl 二进制文件可以开箱即用地执行此操作。