Bonjour,
j'ai quelques soucis avec un client https :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 const std::string& privateKeyFile = "/etc/ssl/private/users/rainbow9/rainbow9.key"; const std::string& certificateFile = "/etc/ssl/private/users/rainbow9/rainbow9.crt"; const std::string& caLocation = "/etc/ssl/private/caSwiss.crt"; //std::string //Poco::URI uri("https://10.110.0.106", "8181"); try { Poco::Net::initializeSSL(); Poco::SharedPtr<Poco::Net::InvalidCertificateHandler> pAcceptCertHandler = new Poco::Net::AcceptCertificateHandler(true); Poco::Net::Context::Ptr pContext = new Poco::Net::Context(Poco::Net::Context::TLSV1_CLIENT_USE, privateKeyFile, certificateFile, caLocation,Poco::Net::Context::VERIFY_RELAXED, 9, true, "ALL:"); Poco::Net::SSLManager::instance().initializeClient(NULL, pAcceptCertHandler, pContext); Poco::Net::HTTPSClientSession theSess("10.110.0.106", 8181); // Create the HTTP request object Poco::Net::HTTPRequest request("POST", "https://10.110.0.106:8181","1.1"); // Send the request std::cout << "Debug point A" << std::endl; std::ostream& aStream = theSess.sendRequest(request); // Erreur envoie de la requête.
A l'exécution il me renvoie l'erreur :
certificate validation error: Unacceptable certificate from 10.110.0.106: application verification failure
J'ai tester mes certificats ils ont l'air fonctionnel :
- Test avec openssl
- Test depuis un navigateur
Si je met le path d'un autre certificat qui n'est pas la bonne CA, j'ai le message suivant :
Du coup je suis un peu perdu, et vu le peu de documentation et d'exemple sur poco c'est pas évident...Exception caught while attempting to connect.
SSL Exception: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Le handshake tls se passe bien, il y a même les deux change cipher spec qui définissent la fin de la connexion non chiffré, mais ensuite mon client envoie un reset au serveur...
Merci de votre aide
Partager