0

好的,所以我在https://www.octgn.net使用通配符证书运行此服务器。在每个浏览器中,我都尝试一切正常,除了我的用户有连接问题。

这里的主要问题是我的软件中有通过 ssl 的 api 调用,而对于某些用户来说,它永远无法正常工作。这是我收集的异常

WARN  2013-05-07 16:18:12,562 3.1.18.102 [11] Octgn.Launcher.LoginNew [(null)] - Login Request Failed
System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a receive. ---> System.IO.IOException: The decryption operation failed, see inner exception. ---> System.ComponentModel.Win32Exception: The message received was unexpected or badly formatted
 --- End of inner exception stack trace ---
at System.Net.Security._SslStream.ProcessReadErrorCode(SecurityStatus errorCode, Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest, Byte[] extraBuffer)
at System.Net.Security._SslStream.ProcessFrameBody(Int32 readBytes, Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security._SslStream.StartFrameBody(Int32 readBytes, Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security._SslStream.StartFrameHeader(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security._SslStream.StartReading(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security._SslStream.ProcessRead(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.TlsStream.Read(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.PooledStream.Read(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.Connection.SyncRead(HttpWebRequest request, Boolean userRetrievedStream, Boolean probeRead)
--- End of inner exception stack trace ---
at System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request)
at System.Net.WebClient.DownloadString(Uri address)
at Octgn.Launcher.LoginNew.<>c__DisplayClass14.<DoLogin>b__13() in c:\Program Files (x86)\Jenkins\workspace\OCTGN-Release\octgnFX\Octgn\Launcher\LoginNew.xaml.cs:line 269

我的代码看起来像这样

using (var wc = new WebClient())
{
    try
    {
        Log.Info("Sending login request");
        var ustring = AppConfig.WebsitePath + "api/user/login.php?username=" + HttpUtility.UrlEncode(username)
                      + "&password=" + HttpUtility.UrlEncode(password);
        if (email != null) ustring += "&email=" + HttpUtility.UrlEncode(email);
        var res = wc.DownloadString(new Uri(ustring));
        res = res.Trim();
        Log.Info("Do Login Request Result: " + res);
    }
    catch(Exception e)
    {
        Log.Warn("Login Request Failed",e);
        this.LoginFinished(LoginResult.Failure, DateTime.Now,"Please try again later.");
    }
}

有任何想法吗?我不确定这是否是我的错,也许我需要将我的公钥放入软件中并以某种方式将其注入我的通话中,或者用户计算机的设置很有趣或其他什么?

我能得到的每一个迹象都是我的 ssl 是正确的,我并没有从很多用户那里得到这个,但是每次都会发生一些,我不确定这里有什么问题。

更多信息:来自用户的报价

“Internet Explorer无法显示该网页。”

不过在其他所有浏览器上都可以正常工作。”

另外,另一个报价

这是我的 SSL 测试结果的屏幕截图:http ://tinypic.com/view.php?pic=l9wtu&s=5

我尝试将 https://*.octgn.net 添加到 IE。似乎没有什么不同。

如果有帮助,它会在登录页面上显示我也无法检索新闻标题。

新闻标题也是服务器上的 xml 文档

此外,调用服务器的应用程序是客户端应用程序,它不是浏览器应用程序。

4

1 回答 1

0

通过 ssl 的跨域请求可能有问题。检查此链接。

http://www.voiceoftech.com/swhitley/index.php/2006/07/ssl-crossing-domains-and-flex/

于 2013-05-07T19:49:33.377 回答