2012-05-14 56 views
1

Lacewing库应该支持托管一个安全的服务器。安全服务器不工作

它说如果证书正确加载,它应该是安全的。但是,我托管它,它说成功加载了证书,但是当我从客户端发送消息到服务器时,我没有收到它。如果没有加载证书,我确实需要。

#include <string> 
#include <iostream> 
#define LacewingFunction 
#include "Lacewing.h" 

void onReceive (Lacewing::Server &Server, Lacewing::Server::Client &Client, 
       char * Data, int Size) { 
        /* callback body */ 
        std::cout << Data << "\n"; 
} 

void onConnect (Lacewing::Server &Server, Lacewing::Server::Client &Client) 
{ 
    std::cout << "Connected!" << "\n"; 
    Client.Send("TestingS"); 
} 



void onReceiveC (Lacewing::Client &Client, char * Data, int Size) 
{ 
    std::cout << Data << "\n"; 
    Client.Send("TesingC"); 
} 


int main(int argc, char* argv[]) 
{ 
    std::string s; 
    std::cin >> s; 
    if(s == "server") 
    { 
     Lacewing::EventPump pump; 
     Lacewing::Server* server = new Lacewing::Server(pump); 
     server->LoadSystemCertificate("MY","localhost"); 
     std::cout << server->CertificateLoaded(); 
     server->onReceive(onReceive); 
     server->onConnect(onConnect); 
     server->Host(1234); 
     std::cout << server->CertificateLoaded(); 
     pump.StartEventLoop(); 
    } 
    else 
    { 
     Lacewing::EventPump pump; 
     Lacewing::Client* server = new Lacewing::Client(pump); 
     server->onReceive(onReceiveC); 
     server->Connect("192.168.2.12",1234); 
     pump.StartEventLoop(); 
    } 

    return 0; 
} 

两次证书都表明它已加载。

这里是api文档。 http://lacewing-project.org/docs/server/LoadSystemCertificate.html

感谢

也许由makecert不工作生成的证书?有没有人有我可以尝试的证书?

+0

[安全握手失败(SSL)]的可能的重复(http://stackoverflow.com/questions/10589626/secure-handshake-failing-ssl) – EJP

回答

1

我正在尝试同样的事情。

bSecure = WebServer.LoadSystemCertificate("My", "localhost","localmachine"); 
bSecure = WebServer.CertificateLoaded(); 

这两个都是真的,所以应该加载证书。

看吧:how to make a certificate

这工作在IE9精细,端口设置为5040 https://localhost:5040/ 它不会在Firefox或Chrome浏览器,但这是与加载“证书颁发机构”证书。

+0

由于端口问题,它会发生在我身上吗?主机和客户端都是本地127.0.0.1 ..我不太了解证书。 – jmasterx

+0

为什么客户类没有安全概念?这是正常的吗? – jmasterx