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 :

Exception caught while attempting to connect.
SSL Exception: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Du coup je suis un peu perdu, et vu le peu de documentation et d'exemple sur poco c'est pas évident...

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