Requisitos previos
Para compilar OpenSSL 3.5 en Windows, se necseitan las siguientes herramientas:
- OpenSSL: Versión 3.5.1, disponible como archivo comprimido openssl-3.5.1.tar.gz.
- NASM: Ansamblador de red, versión nasm-2.16.03-win64.zip para sistemas de 64 bits.
- Perl: Lenguaje de scripting, se recomienda Strawberry Perl versión 5.32.1.1 para arquitectura de 64 bits.
Asegúrese de descargar versiones compatibles con la arquitectura de su sistema operativo (32 o 64 bits).
Configuración del entorno
Después de instalar las herramientas, configure las variables de sistema para incluir las rutas de ejecutables de NASM, Perl y las herramientas de compilación de Visual Studio, como nmake.
Proceso de compilación
Utilice Visual Studio 2022 o una versión compatible. Abra la terminal de desarrollo correspondiente (por ejemplo, "Developer Command Prompt for VS 2022") con privilegios de administrador.
Verifique la instalación ejecutando comandos como perl --version, nasm --version y nmake /? para confirmar que están disponibles.
Para organizar la salida, cree una estructura de directorios. Por ejemplo:
- Bibliotecas dinámicas:
C:\OpenSSL\Output\DLL\x64\ReleaseyC:\OpenSSL\Output\DLL\x64\Debug - Bibliotecas estáticas:
C:\OpenSSL\Output\Lib\x64\ReleaseyC:\OpenSSL\Output\Lib\x64\Debug - Archivos temporales:
C:\OpenSSL\Output\Temp
Dentro del directorio fuente de OpenSSL, cree un script por lotes para automatizar la compilación. A continuación, un ejemplo para construir versiones de 64 bits:
rem Limpiar compilaciones anteriores
nmake clean
rem Compilar versión de lanzamiento dinámica
perl Configure VC-WIN64A --prefix=C:\OpenSSL\Output\DLL\x64\Release --openssldir=C:\OpenSSL\Output\Temp
nmake
nmake test
nmake install_sw
rem Compilar versión de depuración dinámica
nmake clean
perl Configure VC-WIN64A --debug --prefix=C:\OpenSSL\Output\DLL\x64\Debug --openssldir=C:\OpenSSL\Output\Temp
nmake
nmake test
nmake install_sw
rem Compilar versión de lanzamiento estática
nmake clean
perl Configure VC-WIN64A --prefix=C:\OpenSSL\Output\Lib\x64\Release --openssldir=C:\OpenSSL\Output\Temp no-shared
nmake
nmake test
nmake install_sw
rem Compilar versión de depuración estática
nmake clean
perl Configure VC-WIN64A --debug --prefix=C:\OpenSSL\Output\Lib\x64\Debug --openssldir=C:\OpenSSL\Output\Temp no-shared
nmake
nmake test
nmake install_sw
Opciones clave:
no-shared: Genera bibliotecas estáticas en lugar de dinámicas.--debug: Habilita la compilación en modo depuración.nmake install_sw: Instala solo binarios y bibliotecas, sin documentación HTML.
Verificación con código de ejemplo
Después de la compilación, pruebe la instalación con un programa sencillo. No olvide enlazar bibliotecas del sistema como Crypt32.lib y ws2_32.lib al compilar, ya que OpenSSL depende de ellas.
#include <iostream>
#include <openssl>
#include <ctime>
int main() {
std::srand(std::time(nullptr));
unsigned char datosAleatorios[16];
int estado = RAND_bytes(datosAleatorios, sizeof(datosAleatorios));
if (estado == 1) {
for (int idx = 0; idx < sizeof(datosAleatorios); ++idx) {
std::cout << "[" << static_cast<int>(datosAleatorios[idx]) << "]";
}
std::cout << std::endl;
}
return 0;
}</int></ctime></openssl></iostream>
El código anterior genera 16 bytes aleatorios y los muestra en consola para verificar el correcto funiconamiento de OpenSSL.
Compilación para arquitectura de 32 bits
El proceso es similar al de 64 bits, pero se utiliza el objetivo VC-WIN32 en el comando de configuración. Ajuste las rutas de salida según sea necesario.