Obrigado pelo envio dos Certificados para teste...
Eu realmente consegui reproduzir o problema, com OpenSSL, certificado em PFX, consultando o Status de Serviço em SP, em um Certificado onde todas as cadeias, são V5 (imagem abaixo)
Creio que seja algo no lado do Servidor, que ainda não deve ter as novas cadeias de certificado instaladas...
Este problema me remeteu a esse tópico, de problema muito similar:
Usando a solução de converter o PFX para PEM, e posteriormente lê-lo usando o "FHTTP.Sock.SSL.CertCAFile", realmente funcionava... o que me fez concluir que a maneira como a Synapse estava lendo o arquivo PFX, não estava completa, pois não lia os certificados da Cadeia, no contexto...
A solução foi simples, há um comando para inserir uma cadeia de certificados, no contexto... (porém somente descobri após muita pesquisa)
if PKCS12parse(p12, FKeyPassword, pkey, cert, ca) > 0 then
if SSLCTXusecertificate(Fctx, cert) > 0 then
if SSLCTXusePrivateKey(Fctx, pkey) > 0 then
Result := True;
// Set Certificate Verification chain
if Result and (ca <> nil) then
SslCtxCtrl(Fctx, SSL_CTRL_CHAIN, 0, ca); // <---- AQUI
Por favor teste, substituindo as Units e anexo, na sua pasta:
ACBr\Fontes\Terceiros\synalist
ssl_openssl_lib.pas ssl_openssl.pas