Skip to main content

SSL

Bei einer Umstellung auf https müssen alle Programme über dasselbe Protokoll miteinander kommunizieren! In der Regel sind folgende Programme betroffen und es werden folgende Zertifikate benötigt:

  • Tomcat8
    PFX / P12 Datei mit Kennwort

  • TableService
    Zertifikat BASE64 codiert (PEM Datei, wobei die Endung keine große Rolle spielt)
    Private Key (unverschlüsselt – kein RSA Key) ebenfalls BASE64 codiert

  • Squeeze
    Zertifikat BASE64 codiert (PEM Datei, wobei die Endung keine große Rolle spielt)
    Private Key (unverschlüsselt – kein RSA Key) ebenfalls BASE64 codiert
    Zertifikatskette (wenn vorhanden) ebenfalls BASE64 codiert.

WennDer Zertifikatsspeicher (PFX) bzw. das Zertifikat,Zertifikat muss mindestens mit dem Signaturalgorithmus SHA-256 signiert sein.
Es kann bei veraltet konfigurierten CAs (Certificate Authority) vorkommen, dass ein Exportvorgang mit SHA-256 erfolgreich abgeschlossen, das Zertifikat jedoch immer noch mit SHA-1 signiert wurde. SHA-1 gilt seit 2017 als NICHT SICHER!

Der Kunde soll einen PFX Zertifikatsspeicher bereitstellen und das Passwort mitteilen. Gegebenenfalls wird im DEXPRO-Ordner bereits der Unterordner OpenSSL ausgeliefert. Der Ordner enthält die Zertifikatsketteopenssl.exe sowieund 2 DLL's sowieeine ExtractPfx.bat. In der privateBAT-Datei Schlüsselmüssen eineslediglich PFXder ZertifikatsspeichersDateiname, fürdas etwaPasswort und der Pfad angepasst werden. Die PFX-Datei muss in den TomcatUnterordner oder"IN den Apache Webserver benötigt wird, kann diese Batch ausgeführtabgelegt werden. Dazu müssen die folgenden Variablen innerhalb der Batch ausgetauscht werden

SETREM OPENSSL=D:\DEXPRO\TOOLS\OPENSSL\openssl.exeVARIABLES TO SET!
SET PFXFILE=D:\DEXPRO\ZERTIFIKATE\ORIGINALS\Kundenzertifikat.FILENAME=cert.pfx
SET OUTPUTFOLDER=D:\DEXPRO\ZERTIFIKATE\OUT\PW=mySecretPW
SET OUTPUTFILENAME=KONVERTIERTES_KUNDENZERTIFIKAT

SET REMOVEPASSPHRASE=truePATH=D:\Documents5\DEXPRO\OpenSSL\

OPENSSL BINARIES

Durch die Extraktion werden die folgenden Dateien erstellt:

  • Das eigentliche Zertifikat ist die .crt Datei.
  • Der Private Key (mit PEM-Passphrase) ist .key Datei.
  • Die Zertifikatskette ist die _chain.pem Datei, wenn diese leer ist, dann gibt es keine weitere Kette.
  • Der Private Key (ohne PEM-Passphrase) ist die _nopass.key Datei.

Bei allen Dateien müssen die von openssl generierten Informationen entfernt werden. Der folgende Code kann in eineDie ExtrctPfx.bat kopiertsollte mit Administrator-Berechtigungen ausgeführt werden. Das Ergebnis sollte wie im folgenden Screenshot zu sehen aussehen.

@ECHO

image-1651066881810.png

off

Die ECHOkonvertierte -crt-Datei -enthält -nur -zusätzliche -Informationen, -welche -manuell -aus -der -Datei -gelöscht -werden -müssen.

- - - - - - - - - - - - REM VARIABLES TO SET! SET OPENSSL=D:\DEXPRO\TOOLS\OPENSSL\openssl.exe SET PFXFILE=D:\DEXPRO\ZERTIFIKATE\ORIGINALS\KUNDENZERTIFIKAT.pfx SET OUTPUTFOLDER=D:\DEXPRO\ZERTIFIKATE\OUT\ SET OUTPUTFILENAME=KONVERTIERTES_KUNDENZERTIFIKAT REM REMOVE PEM PASSPHRASE? -> TRUE / FALSE SET REMOVEPASSPHRASE=true REM START DER EXTRAKTION ECHO EXTRACTION OF THE INDIVIDUAL COMPONENTS OF A PFX CERTIFICATE STORE ECHO Setting the variables ... ECHO openssl.exe: [%OPENSSL%] ECHO PFX certificate store: [%PFXFILE%] ECHO Destination folder: [%OUTPUTFOLDER%] ECHO Destination file name: [%OUTPUTFILENAME%] ECHO - - - - - - - - - - - - - - - - - - - - - - - ECHO Checking the variables ... if exist %OPENSSL% ( ECHO openssl.exe found ) else ( ECHO openssl.exe [%OPENSSL%] not found - please adjust the path! goto ERROREND ) if exist %PFXFILE% ( ECHO Customer certificate store [%PFXFILE%] found ) else ( ECHO Customer certificate store [%PFXFILE%] not found - please adjust the path! goto ERROREND ) if exist %OUTPUTFOLDER% ( ECHO Destination folder [%OUTPUTFOLDER%] found ) else ( ECHO Destination folder [%OUTPUTFOLDER%] not found - please adjust the path! goto ERROREND ) if "%OUTPUTFILENAME%"=="" ( ECHO No destination filename was specified! goto ERROREND ) ECHO - - - - - - - - - - - - - - - - - - - - - - - ECHO Start extraction ... ECHO PRIVATE KEY EXTRACTION %OPENSSL% pkcs12 -in %PFXFILE% -nocerts -out %OUTPUTFOLDER%%OUTPUTFILENAME%.key ECHO CERTIFICATE EXTRACTION %OPENSSL% pkcs12 -in %PFXFILE% -clcerts -nokeys -out %OUTPUTFOLDER%%OUTPUTFILENAME%.crt ECHO CERTIFICATE CHAIN EXTRACTION %OPENSSL% pkcs12 -in %PFXFILE% -cacerts -nokeys -chain -out %OUTPUTFOLDER%%OUTPUTFILENAME%_chain.pem REM REMOVE PEM PASSPHRASE IF "%REMOVEPASSPHRASE%"=="true" ( ECHO REMOVE PEM-PASSPHRASE %OPENSSL% rsa -in %OUTPUTFOLDER%%OUTPUTFILENAME%.key -out %OUTPUTFOLDER%%OUTPUTFILENAME%_nopass.key ) ELSE ( ECHO PEM-Passphrase is not removed ) GOTO END :END ECHO - - - - - - - - - - - - - - - - - - - - - - - ECHO EXTRACTION COMPLETED! ECHO - - - - - - - - - - - - - - - - - - - - - - - - - PAUSE EXIT :ERROREND ECHO - - - - - - - - - - - - - - - - - - - - - - - ECHO EXTRACTION FAILED! ECHO PLEASE CHECK ALL PARAMETERS! ECHO - - - - - - - - - - - - - - - - - - - - - - - - - PAUSE EXIT

image-1651067082493.png