Vollständigen Pfad einer Variable, ohne Datei in neuer Variable schreiben
Hallo,
Da ich in letzter Zeit immer mal wieder Zertifikate umwandeln muss, wollt ich mir das ganze mittels eines kleinen BAtch Scriptes erleichtern.
Ich stehe allerdings gerade vor einem problem und zwar gebe ich zu Anfang des Scriptes das Quellzertifikat inkl. Pfad an, was ich umwandeln möchte.
Diesen Pfad, möchte ich später auch asl Output_Folder haben, für die umgewandelten Zertifikate. Ich dachte, dass bekomme ich mit %%~dp1 hin.:
Die Sache ist nur, dass mir hier als OUTPUT_FOLDER
ausgegeben wird
Korrekt sein müsste aber
Ich finde den Fehler allerdings nicht.
Da ich in letzter Zeit immer mal wieder Zertifikate umwandeln muss, wollt ich mir das ganze mittels eines kleinen BAtch Scriptes erleichtern.
Ich stehe allerdings gerade vor einem problem und zwar gebe ich zu Anfang des Scriptes das Quellzertifikat inkl. Pfad an, was ich umwandeln möchte.
Diesen Pfad, möchte ich später auch asl Output_Folder haben, für die umgewandelten Zertifikate. Ich dachte, dass bekomme ich mit %%~dp1 hin.:
@echo off
setlocal
rem Setze die Variablen
set /p PFX_FILE="Dein Zertifikat.pfx: "
set /p PFX_PASSWORD="Dein pfx-Passwort: "
FOR %%i IN ("%PFX_FILE%") DO set CERT_NAME=%%~ni
set PEM_KEY_FILE=%CERT_NAME%_key.pem
set PEM_CERT_FILE=%CERT_NAME%_cert.pem
set PEM_KEYANDCERT_FILE=%CERT_NAME%_keyandcert.pem
set JKS_FILE=%CERT_NAME%.jks
set JKS_PASSWORD=%PFX_PASSWORD%
FOR %%I IN ("%PFX_FILE%") DO set OUTPUT_FOLDER=%%~dpI
rem Schritt 1: PFX in PEM umwandeln (Key und Cert extrahieren)
pushd %~dp0\OpenSSL-Win32\bin
echo openssl pkcs12 -in %PFX_FILE% -out %OUTPUT_FOLDER%\%PEM_KEY_FILE% -nocerts -nodes -password pass:%PFX_PASSWORD%
openssl pkcs12 -in %PFX_FILE% -out %OUTPUT_FOLDER%\%PEM_CERT_FILE% -nokeys -password pass:%PFX_PASSWORD%
openssl pkcs12 -in %PFX_FILE% -out %OUTPUT_FOLDER%\%PEM_KEYANDCERT_FILE% -nodes -password pass:%PFX_PASSWORD%
popd
rem Schritt 2: Erstelle einen neuen JKS und importiere den Key und das Zertifikat
pushd %~dp0\jdk17\bin
keytool -importkeystore -srckeystore %PFX_FILE% -srcstoretype PKCS12 -destkeystore %OUTPUT_FOLDER%\%JKS_FILE% -deststoretype JKS -srcstorepass %PFX_PASSWORD% -deststorepass %JKS_PASSWORD%
popd
echo Umwandlung abgeschlossen.
pause
endlocal
Die Sache ist nur, dass mir hier als OUTPUT_FOLDER
C:\Users\Administrator\"D:\temp\Zertifikat_umwandeln\testcert\
Korrekt sein müsste aber
D:\temp\Zertifikat_umwandeln\testcert\
Ich finde den Fehler allerdings nicht.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 668043
Url: https://administrator.de/contentid/668043
Ausgedruckt am: 24.11.2024 um 02:11 Uhr
4 Kommentare
Neuester Kommentar
Eleminiere die Anführungszeichen bei der Eingabe vom User.
@echo off
setlocal
rem Setze die Variablen
set /p "PFX_FILE=Dein Zertifikat.pfx: "
set "PFX_FILE=%PFX_FILE:"=%"
set /p "PFX_PASSWORD=Dein pfx-Passwort: "
FOR %%i IN ("%PFX_FILE%") DO set "CERT_NAME=%%~ni"
set "PEM_KEY_FILE=%CERT_NAME%_key.pem"
set "PEM_CERT_FILE=%CERT_NAME%_cert.pem"
set "PEM_KEYANDCERT_FILE=%CERT_NAME%_keyandcert.pem"
set "JKS_FILE=%CERT_NAME%.jks"
set "JKS_PASSWORD=%PFX_PASSWORD%"
FOR %%I IN ("%PFX_FILE%") DO set "OUTPUT_FOLDER=%%~dpI"
rem Schritt 1: PFX in PEM umwandeln (Key und Cert extrahieren)
pushd "%~dp0OpenSSL-Win32\bin"
echo openssl pkcs12 -in "%PFX_FILE%" -out "%OUTPUT_FOLDER%%PEM_KEY_FILE%" -nocerts -nodes -password pass:%PFX_PASSWORD%
openssl pkcs12 -in "%PFX_FILE%" -out "%OUTPUT_FOLDER%%PEM_CERT_FILE%" -nokeys -password pass:%PFX_PASSWORD%
openssl pkcs12 -in "%PFX_FILE%" -out "%OUTPUT_FOLDER%%PEM_KEYANDCERT_FILE% -nodes -password pass:%PFX_PASSWORD%
popd
rem Schritt 2: Erstelle einen neuen JKS und importiere den Key und das Zertifikat
pushd "%~dp0jdk17\bin"
keytool -importkeystore -srckeystore "%PFX_FILE%" -srcstoretype PKCS12 -destkeystore "%OUTPUT_FOLDER%%JKS_FILE%" -deststoretype JKS -srcstorepass %PFX_PASSWORD% -deststorepass %JKS_PASSWORD%
popd
echo Umwandlung abgeschlossen.
pause
endlocal