openssl

Umlaute und Encoding

Written by  on Juli 27, 2020

Eine schöne Aufstellung woher Encoding Probleme kommen zwischen ISO und UTF8:
Umlautproblem
Falls man UTF8 String in Openssl braucht, es gibt eine einfache Option die “alles” wieder gut macht:

openssl  req -utf8 -config ./openssl.cnf -new -key file.key -subj '/C=${C}/CN=${CN}'

OpenSSL3 in MobaXterm

Written by  on April 25, 2020

Ankündigung OpenSSL3.0Alpha1

Vorbereitung für MobaXterm: OpenSSL benötigt ein aktuelles Perl zum kompilieren.
apt-get install perl (hebt die Version von 14 auf 26)

Download von github.com/openssl/openssl -> Clone or Download -> Download ZIP
unzip
./config
make

apps/openssl.exe version
OpenSSL 3.0.0-alpha2-dev  (Library: OpenSSL 3.0.0-alpha2-dev )

OpenSSL und Custom Certificates

Written by  on Oktober 26, 2019
openssl version -a
...
OPENSSLDIR: "/usr/local/ssl"
...

Place cert.pem File here (Liste of custom certificates)
See also:
Stackoverflow
MadBoa
Der Ordner ./certs da drin funktioniert nicht – zumindest nicht bei mir

MobaXterm und OpenSSL 1.1.1d

Written by  on Oktober 15, 2019

OpenSSL 1.1.1d bricht leider mit einem Fehler ab

gcc  -I. -Icrypto/include -Iinclude  -Wall -O3 -fomit-frame-pointer -DTERMIOS -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_  IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DRC4_ASM -DMD5_ASM -DRMD160_ASM -DVPAES_ASM -DWHIRLPOOL_ASM -DGHASH_A  SM -DECP_NISTZ256_ASM -DPOLY1305_ASM -DOPENSSLDIR=""/usr/local/ssl"" -DENGINESDIR=""/usr/local/lib/engines-1.1"" -DNDEBUG  -MMD -MF crypto/dso/dso_dlfcn.d.tm  p -MT crypto/dso/dso_dlfcn.o -c -o crypto/dso/dso_dlfcn.o crypto/dso/dso_dlfcn.c
crypto/dso/dso_dlfcn.c: In function 'dlfcn_pathbyaddr':
crypto/dso/dso_dlfcn.c:409:5: error: unknown type name 'Dl_info'
     Dl_info dli;
     ^
crypto/dso/dso_dlfcn.c:422:5: warning: implicit declaration of function 'dladdr' [-Wimplicit-function-declaration]
     if (dladdr(addr, &dli)) {
     ^
crypto/dso/dso_dlfcn.c:423:30: error: request for member 'dli_fname' in something not a structure or union
         len = (int)strlen(dli.dli_fname);
                              ^
crypto/dso/dso_dlfcn.c:432:25: error: request for member 'dli_fname' in something not a structure or union
         memcpy(path, dli.dli_fname, len);
                         ^
Makefile:2735: recipe for target 'crypto/dso/dso_dlfcn.o' failed
make[1]: *** [crypto/dso/dso_dlfcn.o] Error 1
make[1]: Leaving directory '/drives/c/temp/openssl-1.1.1d'
Makefile:174: recipe for target 'all' failed
make: *** [all] Error 2

Ursache ist diese Änderung im Code
Wurde mit dieser Issue eingeführt
Build läuft wie gewohnt durch, wenn man die Datei crypto/dso/dso_dlfcn.c aus 1.1.1c verwendet.

Bugreport Unable to compile OpenSSL 1.1.1d on Cygwin

OpenSSL PFX aus geschütztem Key erzeugen

Written by  on Februar 5, 2019
 openssl pkcs12 -export -in "${FILE}.cer" -inkey "${FILE}.key" -passin pass:$PASS -out "${FILE}.pfx" -name "${FILE}_$(date +%Y%m%d_%H%M%S)" -passout pass:$PASS

-name … Friendly Name / Alias
-passout … Passwort fürs PFX
-passin … Passwort vom KEY

OpenSSL PFX erzeugen

Written by  on Februar 2, 2019
openssl pkcs12 -export -out ${FILE}.pfx -inkey ${FILE}.key -in ${FILE}.cer

openssl nameopt

Written by  on Dezember 18, 2018

OpenSSL unterstützt eine nette Option, falls man den Output in einem Script weiterverarbeiten will.
Hier die normale Ausgabe:

openssl x509 -in test.cer -noout -text
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            55:0d:00:d6:79:bf:17:7b
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: C = US, O = Google Trust Services, CN = Google Internet Authority G3
        Validity
            Not Before: Nov 27 14:02:00 2018 GMT
            Not After : Feb 19 14:02:00 2019 GMT
        Subject: C = US, ST = California, L = Mountain View, O = Google LLC, CN = *.google.com

Und hier die Multiline Ausgabe:

openssl x509 -in test.cer -noout -text -nameopt multiline
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            55:0d:00:d6:79:bf:17:7b
    Signature Algorithm: sha256WithRSAEncryption
        Issuer:
            countryName               = US
            organizationName          = Google Trust Services
            commonName                = Google Internet Authority G3
        Validity
            Not Before: Nov 27 14:02:00 2018 GMT
            Not After : Feb 19 14:02:00 2019 GMT
        Subject:
            countryName               = US
            stateOrProvinceName       = California
            localityName              = Mountain View
            organizationName          = Google LLC
            commonName                = *.google.com

Dokumentation

Compiler Zeit Openssl 1.1.1 Pre7

Written by  on Juni 8, 2018

Auf Quadcore Intel(R) Core(TM) i5-3427U CPU @ 1.80GHz mit Virenscanner

./config no-async && time make
real    1h 36m 37s
user    5m 9.02s
sys     1h 22m 34s

Auf Quadcore Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz mit Windows Defender

./config no-async && time make
real    11m 16.66s
user    3m 13.19s
sys     4m 27.34s

So gefühlt, rechnet der i5 also 5 Minuten statt 3 Minuten. Aber die System-Time scheint vom Virenscanner zu kommen.

Warum man auf OpenSSL 1.1.1 wartet

Written by  on Juni 6, 2018

Schön langsam wird es Zeit fürs neue OpenSSL 1.1.1. Das will man haben, damit endlich TLS 1.3 in der Breite verfügbar wird.
Aber es gibt weitere interessante Änderungen.
SNI ist ab dann der Standard für s_client.
Bei s_client -starttls werden mehr Protokolle wie LDAP unterstützt.

openssl 1.1.1-pre1 in mobaxterm

Written by  on Februar 15, 2018

OpenSSL testet an einer neuen Version herum. Aber auch OpenSSL 1.1.1-pre1 lässt sich nicht ohne weiters in MobaXTerm bauen.
Bekanntes Problem, gleiche Lösung:

$ make clean && ./config && make
crypto/async/arch/async_posix.o:async_posix.c:(.text+0xe): undefined reference to `getcontext'
crypto/async/arch/async_posix.o:async_posix.c:(.text+0x56): undefined reference to `getcontext'
crypto/async/arch/async_posix.o:async_posix.c:(.text+0xd4): undefined reference to `makecontext'
crypto/async/async.o:async.c:(.text+0x34): undefined reference to `setcontext'
collect2: error: ld returned 1 exit status
Makefile:728: recipe for target 'libcrypto.dll.a' failed
make[1]: *** [libcrypto.dll.a] Error 1
make[1]: Leaving directory '/home/mobaxterm/_work/openssl-1.1.1-pre1'
Makefile:143: recipe for target 'all' failed
make: *** [all] Error 2
Command exited with non-zero status 2
$ make clean && ./config no_async && make
$ apps/openssl.exe version
OpenSSL 1.1.1-pre1 (alpha) 13 Feb 2018