ssl

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

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.

SSL Fehler

Written by  on März 18, 2018

Ist schon wieder ein paar Tage her. Aber woher kam dieser Fehler? War nur einmal sichtbar. Foglende Aufrufe haben wieder funktioniert.

OpenSSL in MobaXterm

Written by  on November 8, 2017

Neue OpenSSL Version kompilieren in MobaXterm bricht einfach ab mit Fehlermeldung

./config && make
...
...
...
gcc  -I. -Iinclude -DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC-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 -DAES_ASM -DVPAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DOPENSSLDIR=""/usr/local/ssl"" -DENGINESDIR=""/usr/local/lib/engines-1.1"" -D TERMIOS -DL_ENDIAN -Wall -O3 -fomit-frame-pointer  -D_WINDLL -MMD -MF ssl/tls_srp.d.tmp -MT ssl/tls_srp.o -c -o ssl/tls_srp.o ssl/tls_srp.c
ar  r libssl.a ssl/bio_ssl.o ssl/d1_lib.o ssl/d1_msg.o ssl/d1_srtp.o ssl/methods.o ssl/pqueue.o ssl/record/dtls1_bitmap.o ssl/record/rec_layer_d1.o ssl/record/rec_layer_s3.o ssl/record/ssl3_buffer.o ssl/record/ssl3_record.o ssl/s3_cbc.o ssl/s3_enc.o ssl/s3_lib.o ssl/s3_msg.o ssl/ssl_asn1.o ssl/ssl_cert.o ssl/ssl_ciph.o ssl/ssl_conf.o ssl/ssl_err.o ssl/ssl_init.o ssl/ssl_lib.o ssl/ssl_mcnf.o ssl/ssl_rsa.o ssl/ssl_sess.o ssl/ssl_stat.o ssl/ssl_txt.o ssl/ssl_utst.o ssl/statem/statem.o ssl/statem/statem_clnt.o ssl/statem/statem_dtls.o ssl/statem/statem_lib.o ssl/statem/statem_srvr.o ssl/t1_enc.o ssl/t1_ext.o ssl/t1_lib.o ssl/t1_reneg.o ssl/t1_trce.o ssl/tls_srp.o
ar: creating libssl.a
ranlib libssl.a || echo Never mind.
/bin/make -f ./Makefile.shared -e \
        PLATFORM=Cygwin-x86 \
        PERL="/usr/bin/perl" SRCDIR='.' DSTDIR="." \
        INSTALLTOP='/usr/local' LIBDIR='lib' \
        LIBDEPS=' '""' ' \
        LIBNAME=crypto SHLIBVERSION=1.1 \
        STLIBNAME=libcrypto.a \
        SHLIBNAME=libcrypto.dll.a SHLIBNAME_FULL=cygcrypto-1.1.dll \
        CC='gcc' CFLAGS='-DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -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 -DAES_ASM -DVPAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DOPENSSLDIR=""/usr/local/ssl"" -DENGINESDIR=""/usr/local/lib/engines-1.1"" -DTERMIOS -DL_ENDIAN -Wall -O3 -fomit-frame-pointer  -D_WINDLL' \
        LDFLAGS='' SHARED_LDFLAGS='-shared ' \
        RC='windres' SHARED_RCFLAGS='' \
        link_shlib.cygwin-shared
make[2]: Entering directory '/drives/c/temp/openssl-1.1.0g'
/usr/bin/perl ./util/mkrc.pl cygcrypto-1.1.dll | windres  -o rc.o
LD_LIBRARY_PATH=:/bin gcc -DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -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 -DAES_ASM -DVPAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DOPENSSLDIR="/usr/local/ssl" -DENGINESDIR="/usr/local/lib/engines-1.1" -DTERMIOS -DL_ENDIAN -Wall -O3 -fomit-frame-pointer -D_WINDLL -shared -shared -Wl,--enable-auto-image-base -Wl,-Bsymbolic -Wl,--out-implib,libcrypto.dll.a rc.o -o cygcrypto-1.1.dll -Wl,--whole-archive libcrypto.a -Wl,--no-whole-archive
libcrypto.a(async_posix.o):async_posix.c:(.text+0xe): undefined reference to `getcontext'
libcrypto.a(async_posix.o):async_posix.c:(.text+0x56): undefined reference to `getcontext'
libcrypto.a(async_posix.o):async_posix.c:(.text+0xd4): undefined reference to `makecontext'
libcrypto.a(async.o):async.c:(.text+0x34): undefined reference to `setcontext'
collect2: error: ld returned 1 exit status
Makefile.shared:243: recipe for target 'link_shlib.cygwin' failed
make[2]: *** [link_shlib.cygwin] Error 1
make[2]: Leaving directory '/drives/c/temp/openssl-1.1.0g'
Makefile:639: recipe for target 'libcrypto.dll.a' failed
make[1]: *** [libcrypto.dll.a] Error 2
make[1]: Leaving directory '/drives/c/temp/openssl-1.1.0g'
Makefile:130: recipe for target 'all' failed
make: *** [all] Error 2

Lösung:

./config no-async && make

Der Build läuft durch und baut eine funktionierende exe

$ apps/openssl.exe version
OpenSSL 1.1.0g  2 Nov 2017

Zitat des Tages

Written by  on Oktober 25, 2017

Beschreibt exakt was wir alle tagtäglich erleben mit SSL/TLS/X.509

Allerdings sind Verbindungen zu diesen Seiten nicht zwangsläufig sicher. Die Verwendung schwacher Verschlüsselungsalgorithmen, Schwachstellen in den Webservern oder SSL-Bibliotheken in Verbindung mit allen möglichen Angriffstechniken, können Eindridnglinge auf empfindliche Informationen zugreifen lassen. Ein wichtiger Aspekt ist auch die Vertrauenswürdigkeit einer öffentlichen Zertifizierungsstelle. Die bekanntesten offiziellen Zertifizierungsstellen sind … und …, deren Verwendung schon in die meisten Browser kompiliert ist und daher automatisch akzeptiert wird.

HSTS Preload

Written by  on Oktober 18, 2017

Das HSTS Preloading wurde mittlerweile aufgeschaltet:

Status: xn--hllrigl-90a.at is currently preloaded.

Sollte sofort sichtbar sein, wer versucht http://www.höllrigl.at aufzurufen wird sofort auf https://www.höllrigl.at umgeleitet.
Auch die SSLLabs Prüfung erkennt das:

HSTS Preloading	Chrome  Edge  Firefox  IE  

CAA records

Written by  on Oktober 4, 2017

Wie schaut ein CAA Record aus in bind:

xn--hllrigl-90a.at. CAA 1 issue "letsencrypt.org"

Erstellen lassen sich die CAA Records unter sslmate.com/caa. So bekommt man auch eine Auflistung aktueller Kürzel der CAs.

CAA Record mit dig überprüfen:

$ dig CAA höllrigl.at
...
;; QUESTION SECTION:
;höllrigl.at.                   IN      CAA

;; ANSWER SECTION:
höllrigl.at.            300     IN      CAA     0 iodef "mailto:hostmaster@xn--hllrigl-90a.at"
höllrigl.at.            300     IN      CAA     0 issue "letsencrypt.org"
...

Wenn dig den CAA Type noch nicht versteht:

$ dig höllrigl.at type257
...
;; QUESTION SECTION:
;höllrigl.at.                   IN      TYPE257

;; ANSWER SECTION:
höllrigl.at.            300     IN      TYPE257 \# 22 000569737375656C657473656E63727970742E6F7267
höllrigl.at.            300     IN      TYPE257 \# 43 0005696F6465666D61696C746F3A686F73746D617374657240786E2D 2D686C6C7269676C2D3930612E6174

HSTS Preload WordPress

Written by  on Oktober 2, 2017

HSTS Header korrekt setzen inklusive preload in WordPress mit dem Plugin Security Headers
Preloading für die Browser aktivieren lassen unter hstspreload.org

Status: xn--hllrigl-90a.at is pending submission to the preload list.