Aquesta secci¨® ensenya com crear binaris d'agent Áú»¢¶Ä²© Windows a partir de fonts amb o sense TLS.
Les passes seg¨¹ents us ajudaran a compilar OpenSSL des de la font a MS Windows 10 (64 bits).
Abans de procedir, comproveu que la m¨¤quina Windows t¨¦:
Obtingueu fonts OpenSSL de . Aquest exemple empra OpenSSL 1.1.1.
Descomprimiu les fonts OpenSSL, per exemple, a E:\openssl-1.1.1.
Obriu una l¨ªnia de comandes, com ara Native Tools x64 Command Prompt per a VS 2017 RC.
Navegueu al directori font d'OpenSSL, (en aquest tutorial, E:\\openssl-1.1.1.
) i verifiqueu que s'hi troba el NASM:
e:\openssl-1.1.1> nasm --version
NASM versi¨® 2.13.01 compilada l'1 de maig de 2017
e:\openssl-1.1.1> perl E:\openssl-1.1.1\Configura VC-WIN64A no-shared no-capieng no-srp no-gost no-dgram no-dtls1 -method no-dtls1_2-method --api=1.1.0 --prefix=C:\OpenSSL-Win64-111-static --openssldir=C:\OpenSSL-Win64-111-static
- Tingueu en compte l'opci¨® 'no-shared': si s'empra 'no-shared', les biblioteques est¨¤tiques d'OpenSSL libcrypto.lib i libssl.lib seran 'autosuficients' i els binaris Áú»¢¶Ä²© resultants inclouran OpenSSL, no cal per a 'DLL externa OpenSSL'.
Avantatge: els binaris Áú»¢¶Ä²© es poden copiar a altres m¨¤quines Windows sense biblioteques OpenSSL.
Desavantatge: quan es publica una nova versi¨® de correcci¨® d'errors d'OpenSSL, cal recompilar i tornar a instal¡¤lar l'agent Áú»¢¶Ä²©.
- Si no s'empra 'no-shared', les biblioteques est¨¤tiques libcrypto.lib i libssl.lib empraran DLL OpenSSL quan s'executen.
Avantatge: quan es publica una nova versi¨® de correcci¨® d'errors d'OpenSSL, probablement nom¨¦s podreu actualitzar les DLL d'OpenSSL, sense recompilar l'agent Áú»¢¶Ä²©.
Desavantatge: per copiar l'agent Áú»¢¶Ä²© a una altra m¨¤quina tamb¨¦ cal copiar les DLL d'OpenSSL.
e:\openssl-1.1.1> nmake
e:\openssl-1.1.1> test nmake
...
All tests successful.
Fitxers=152, proves=1152, 501 segons de rellotge de paret (0,67 usr + 0,61 sys = 1,28 CPU)
Resultat: PASS
e:\openssl-1.1.1> nmake install_sw
install\_sw
nom¨¦s instal¡¤la components de programari (¨¦s a dir, biblioteques, fitxers de cap?alera, per¨° sense documentaci¨®). Si ho voleu tot, empreu nmake install
.
Baixeu la biblioteca PCRE o PCRE2 des del repositori ().
Extraieu-lo al directori E:\pcre2-10.39.
Instal¡¤leu CMake des de , en instal¡¤lar seleccioneu i assegureu-vos que cmake\bin estigui al vostre cam¨ª (versi¨® provada 3.9.4).
Creeu un nou directori de compilaci¨® buit, preferiblement un subdirectori del directori font. Per exemple, E:\pcre2-10.39\build.
Obriu una finestra de l¨ªnia d'ordres, p. Native Tools x64 Command Prompt per a VS 2017 i des d'aquest entorn de shell executeu cmake-gui. No intenteu iniciar Cmake des del men¨² Inici de Windows, ja que aix¨° pot provocar errors.
Introdu?u E:\pcre2-10.39 i E:\pcre2-10.39\build per als directoris font i compilaci¨®, respectivament.
Premeu el bot¨® "Configurar".
Quan especifiqueu el generador per a aquest projecte, seleccioneu "NMake Makefiles".
Creeu un nou directori d'instal¡¤laci¨® buit. Per exemple, E:\pcre2-10.39-install.
Tot seguit, la GUI mostrar¨¤ diverses opcions de configuraci¨®. Assegureu-vos que les opcions seg¨¹ents s¨®n triades:
Premeu "Configurar" de nou. El bot¨® "Generar" adjacent ara hauria d'¨¦sser actiu.
Premeu "Generar".
En cas d'error, es recomana esborrar la mem¨°ria cau de CMake abans d'intentar repetir el proc¨¦s de creaci¨® de CMake. A la GUI de CMake, la mem¨°ria cau es pot esborrar seleccionant "Fitxer > Esborrar la mem¨°ria cau".
El directori de compilaci¨® ara hauria de contindre un sistema de compilaci¨® utilitzable - Makefile.
Obriu una finestra de l¨ªnia d'ordres, p. Native Tools x64 Command Prompt per a VS 2017 i navegueu al Makefile esmentat anteriorment.
Executeu l'ordre NMake:
E:\pcre2-10.39\build> nmake install
Les passes seg¨¹ents us ajudaran a compilar Áú»¢¶Ä²© des de la font a MS Windows 10 (64 bits). Quan es compila Áú»¢¶Ä²© amb/sense suport TLS, l'¨²nica difer¨¨ncia significativa es troba a la passa 4.
git clone https://git.zabbix.com/scm/zbx/zabbix.git
cd zabbix
./bootstrap.sh
./configure --enable-agent --enable-ipv6 --prefix=`pwd`
make dbschema
make dist
Copieu i descomprimiu l'arxiu, p.e. zabbix-7.2.0.tar.gz
, a una m¨¤quina Windows.
Suposem que les fonts s¨®n a e:\zabbix-7.2.0. Obriu una finestra de l¨ªnia de comandes, com ara l'indicador d'ordres natiu de les eines x64 per a VS RC 2017. Aneu a:
E:\\zabbix-4.4.0\\build\\win32\\project
E:\zabbix-7.0.0\build\win32\project> nmake /K PCRE2INCDIR=E:\pcre2-10.39-install\include PCRE2LIBDIR=E:\pcre2-10.39-install\lib
E:\zabbix-7.0.0\build\win32\project> nmake /K -f Makefile_get TLS=openssl TLSINCDIR=C:\OpenSSL-Win64-111-static\include TLSLIBDIR=C:\OpenSSL-Win64-111-static\lib PCRE2INCDIR=E:\pcre2-10.39-install\include PCRE2LIBDIR=E:\pcre2-10.39-install\lib E:\zabbix-7.0.0\build\win32\project> nmake /K -f Makefile_sender TLS=openssl TLSINCDIR="C:\OpenSSL-Win64-111-static\include TLSLIBDIR="C:\OpenSSL-Win64-111-static\lib" PCRE2INCDIR=E:\pcre2-10.39-install\include PCRE2LIBDIR=E:\pcre2-10.39-install\lib E:\zabbix-7.0.0\build\win32\project> nmake /K -f Makefile_agent TLS=openssl TLSINCDIR=C:\OpenSSL-Win64-111-static\include TLSLIBDIR=C:\OpenSSL-Win64-111-static\lib PCRE2INCDIR=E:\pcre2-10.39-install\include PCRE2LIBDIR=E:\pcre2-10.39-install\lib
El proc¨¦s ¨¦s similar a la compilaci¨® amb OpenSSL, per¨° cal fer petits canvis als fitxers que es troben al directori build\win32\project
:
/DHAVE_OPENSSL_WITH_PSK
Per fer-ho, cerqueu:
CFLAGS = $(CFLAGS) /DHAVE\_OPENSSL /DHAVE\_OPENSSL\_WITH\_PSK
i substitu?u per
CFLAGS = $(CFLAGS) /DHAVE_OPENSSL
/NODEFAULTLIB:LIBCMT
I cerqueu:
/MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DYNAMICBASE:NO /PDB:$(TARGETDIR)\\$(TARGETNAME).pd
i substitu?u per:
/MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DYNAMICBASE:NO /PDB:$(TARGETDIR)\$(TARGETNAME).pdb /NODEFAULTLIB:LIBCMT