OpenSSL | Linkagem Estática

O OpenSSL pode ser vinculado diretamente ao executável da sua aplicação, em vez de ser carregado em tempo de execução a partir dos arquivos DLL libcrypto e libssl. Isso significa que uma aplicação que utiliza TLS não precisa implantar nenhuma DLL do OpenSSL, pois tudo o que ela precisa já está dentro do .exe.

Isso é útil quando você deseja distribuir um único arquivo, quando não é possível garantir que a máquina de destino tenha a DLL correta do OpenSSL instalada, ou quando o seu processo de implantação não permite arquivos extras junto ao executável.

Requisitos

Como Configurar

Não há nada para configurar. Basta adicionar a unit sgcIdSSLOpenSSL_Static à cláusula uses do seu projeto, por exemplo no arquivo .dpr principal:

uses

  sgcIdSSLOpenSSL_Static;

Isso é tudo. Não há nenhuma diretiva de compilador para habilitar nem nenhuma versão da API do OpenSSL para escolher; a sua aplicação passa a usar a biblioteca OpenSSL vinculada ao executável na próxima vez que for executada, tanto para os componentes cliente quanto para os componentes servidor. Se você remover a unit da cláusula uses, a sua aplicação volta a carregar as DLLs do OpenSSL exatamente como antes.

A versão do OpenSSL atualmente vinculada é a 3.5.7. Esta versão é atualizada periodicamente para incluir as correções mais recentes do OpenSSL, portanto você não precisa acompanhar ou implantar versões do OpenSSL por conta própria.

Erros Comuns

E2045 Bad object file format

Isso significa que você está compilando com uma versão do Delphi anterior à XE2. A linkagem estática requer o Delphi XE2 ou mais recente; remova a unit sgcIdSSLOpenSSL_Static da cláusula uses e a sua aplicação continuará funcionando com as DLLs do OpenSSL.