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.

Wenn das Zertifikat, die Zertifikatskette sowie der private Schlüssel eines PFX Zertifikatsspeichers für etwa den Tomcat oder den Apache Webserver benötigt wird, kann diese Batch ausgeführt werden. Dazu müssen die folgenden Variablen innerhalb der Batch ausgetauscht werden

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

SET REMOVEPASSPHRASE=true

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 eine ExtrctPfx.bat kopiert werden.

@ECHO off
ECHO - - - - - - - - - - - - - - - - - - - - - - - - -
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