česky | cymraeg | deutsch | english | español | français | nederlands | português --- d'autres guides pour Android


retour vers: Andreas Terpotiz

CAcert pour Android - Import

Description

Avec ce fichier batch le certificat racine de CAcert peut être importé sur un téléphone mobile.

Les fichiers requis seront automatiquement téléchargées. Les mots de passe sont nécessaires, si nécessaire.

Si vous voulez copier vos propres certificats sur votre téléphone mobile, stockés ceux-ci dans un sous-répertoire avec le nom Own. Ce sous-répertoire doit être dans le même répertoire que le fichier de commandes (batch file). Le format du fichier (des fichiers) doit être .p12 .pks respectivement.

Testé avec Windows 7 Home Professional x64
Télécharger le fichier à la fin du code source.

@ECHO OFF
CLS
REM ##########################################################################################################################################
REM ### (c) 2013 Andreas Terpotiz <andreas.terpotiz@cacert.org>                                                                            ###
REM ##########################################################################################################################################
REM ### Funktion: Aktualisieren der CA-Zertifkate auf einem Android Handy.                                                                 ###
REM ### Voraussetzung: Internet Zugriff                                                                                                    ###
REM ### wget: http://downloads.sourceforge.net/project/gnuwin32/wget/1.11.4-1/wget-1.11.4-1-bin.zip?r=&ts=1357593613&use_mirror=netcologne ###
REM ### Das Passwort für die Eigene Zertifikats-Datei und die vom Handy                                                                    ###
REM ##########################################################################################################################################

REM ######################################################################################################################

SET /P WGET_PATH="Wo liegt die ausführbare WGET-Datei? "
IF NOT EXIST "%WGET_PATH%\wget.exe" CALL :ERROR_MSG "WGET kann nicht gefunden werden."

REM ######################################################################################################################

REM DOWNLOAD der benötigten Dateien
ECHO Lade benötigte Dateien herunter
"%WGET_PATH%\wget" -qc http://stahlforce.com/dev/unzip.exe
"%WGET_PATH%\wget" -qc http://dottech.org/downloads/adb_fastboot_and_other_tools.zip
unzip -qq adb_fastboot_and_other_tools.zip
MOVE adb_fastboot_and_other_tools adb 2>NUL 1>&2
SET PATH=%PATH%;%CD%\adb\android

IF EXIST "%ProgramFiles(x86)%\java\j*" GOTO SET_JAVA
IF EXIST "%ProgramFiles%\java\j*" GOTO SET_JAVA
CALL :ERROR_MSG "Keine Java installiert"

:SET_JAVA
SET OLD_DIR="%CD%"
CD "%ProgramFiles(x86)%\Java\j*"
SET JAVA_HOME="%CD%"
SET PATH=%PATH%;%JAVA_HOME%\bin
CD "%OLD_DIR%"

REM ######################################################################################################################

REM ANLEGEN der benötigten Dateien
REM Hier können die Passwörter hinzugefügt werden
REM welche auf den KeyStore fetestet werden
ECHO "" > cert_passwords_for_store.txt
ECHO changeme >> cert_passwords_for_store.txt
ECHO changeit >> cert_passwords_for_store.txt

REM Hier können die zu löschenden CAcert Alias hinzugefügt werden
ECHO CACERT3 > cert_alias_to_del.txt
ECHO CACERT >> cert_alias_to_del.txt
ECHO cacertclass3 >> cert_alias_to_del.txt
ECHO cacertclass1 >> cert_alias_to_del.txt
ECHO class3 >> cert_alias_to_del.txt
ECHO root >> cert_alias_to_del.txt

REM Hier können die zu löschenden Eigenen Alias hinzugefügt werden
REM mit welchen die Zertifikate angesprochen werden
ECHO sso >> cert_alias_to_del.txt
ECHO andreas@terpotiz.net >> cert_alias_to_del.txt
ECHO aterpotiz@terpotiz.net >> cert_alias_to_del.txt
ECHO a.terpotiz@terpotiz.net >> cert_alias_to_del.txt
ECHO terpotiz@buz.at >> cert_alias_to_del.txt
ECHO andreas.terpotiz@live.at >> cert_alias_to_del.txt
ECHO CAcert Inc. ID von Andreas Terpotiz >> cert_alias_to_del.txt
ECHO CAcert Inc. ID von Andreas Terpotiz #5 >> cert_alias_to_del.txt
ECHO CAcert Inc. ID von Andreas Terpotiz #4 >> cert_alias_to_del.txt
ECHO CAcert Inc. ID von Andreas Terpotiz #2 >> cert_alias_to_del.txt

REM Hier sind die Befehle für die Zertifikat Rückspielung
REM auf das Android Handy
ECHO su -c "mount -o rw,remount -t rfs /dev/block/stl9 /system" > android.txt
ECHO sleep 5 >> android.txt
ECHO su -c "cat /mnt/sdcard/cacerts.bks > /system/etc/security/cacerts.bks" >> android.txt
ECHO sleep 5 >> android.txt
ECHO su -c "mount -o ro,remount -t rfs /dev/block/stl9 /system" >> android.txt
ECHO sleep 5 >> android.txt
ECHO "reboot" >> android.txt

REM ######################################################################################################################

REM Prüfe Handy
ECHO Bitte scliessen Sie das Android Handy an.
adb wait-for-device shell exit

ECHO Hole Zertifikatsliste vom Handy
adb pull /system/etc/security/cacerts.bks cacerts.bks 2>NUL 1>&2

ECHO Prüfe Passwort für Zertifikats Datei
CALL :CHECK_DL http://bouncycastle.org/download/bcprov-jdk16-141.jar "J/n" J
FOR /F %%a IN (cert_passwords_for_store.txt) DO (
        SET PASSWORD=%%a
        keytool -keystore cacerts.bks -storetype BKS -providerpath bcprov-jdk16-141.jar -provider org.bouncycastle.jce.provider.BouncyCastleProvider -storepass %PASSWORD% -v -list 2>NUL 1>&2
        IF ERRORLEVEL 0 GOTO WEITER
)

REM Händische Eingabe
SET /P PASSWORD="Bitte das Passwort eingeben: " || set PASSWORD=""
keytool -keystore cacerts.bks -storetype BKS -providerpath bcprov-jdk16-141.jar -provider org.bouncycastle.jce.provider.BouncyCastleProvider -storepass %PASSWORD% -v -list 2>NUL 1>&2
IF %ERRORLEVEL% EQU 0 GOTO WEITER

CALL :ERROR_MSG "Passwort ist nicht gültig"

:WEITER
IF %PASSWORD%=="" (ECHO Leeres Passwort für die Zertifikatesdatei) ELSE ECHO Passwort: %PASSWORD%

REM ######################################################################################################################

REM ################################################
REM ### Zertifikate über den ALIAS Namen löschen ###
REM ################################################
:DEL_CERT
        SET /P DEL_CERT="Alte Zertifikate löschen?(J/n): " || SET DEL_CERT=j
        IF  /I "%DEL_CERT%" EQU "j" ( GOTO DEL_CERT_YES) ELSE ( GOTO DEL_CERT_NO )
        GOTO DEL_CERT
:DEL_CERT_YES
        ECHO Lösche eventuell vorhandene alte Zertifikate
        FOR /F %%a IN (cert_alias_to_del.txt) DO @keytool -keystore cacerts.bks -storetype BKS -providerpath bcprov-jdk16-141.jar -provider org.bouncycastle.jce.provider.BouncyCastleProvider -storepass %PASSWORD% -alias %%a -delete 2>NUL 1>&2
:DEL_CERT_NO

REM ######################################################################################################################

REM ######################################
REM ### CAcert Zertifikate importieren ###
REM ######################################
:CACERT_IMP
        SET /P CACERT_IMP="CAcert Zertifikate importieren?(J/n): " || SET CACERT_IMP=j
        IF  /I "%CACERT_IMP%" EQU "j" ( GOTO CACERT_IMP_YES) ELSE ( GOTO CACERT_IMP_NO )
        GOTO CACERT_IMP
:CACERT_IMP_YES
        ECHO Importiere CAcert Zertifikate
        "%WGET_PATH%\wget" -qc http://www.cacert.org/certs/root_X0F.crt
        "%WGET_PATH%\wget" -qc http://www.cacert.org/certs/class3_x14E228.crt
        FOR /F "tokens=*" %%a in ('dir /b /a-d *.crt') DO @keytool -keystore cacerts.bks -storetype BKS -providerpath bcprov-jdk16-141.jar -provider org.bouncycastle.jce.provider.BouncyCastleProvider -storepass %PASSWORD% -importcert -trustcacerts -alias "%%~na" -file %%a -v -noprompt
:CACERT_IMP_NO

REM ######################################
REM ### Eigene Zertifikate importieren ###
REM ######################################
:CACERT_IMP
        SET /P CACERT_IMP="Eigene Zertifikate importieren?(j/N): " || SET CACERT_IMP=n
        IF  /I "%CACERT_IMP%" EQU "j" ( GOTO CACERT_IMP_YES) ELSE ( GOTO CACERT_IMP_NO )
        GOTO CACERT_IMP
:CACERT_IMP_YES
        ECHO Importiere Eigene Zertifikate
        REM Setzen des Eigenen Zertifikates Passworts
        set /P CERTPASS="Bitte das Passwort für die Zertifikate eingeben: " || set /P CERPASS=undef
        FOR /F "tokens=*" %%a in ('dir /b /a-d Own\*.p12') DO @keytool -importkeystore -srckeystore Own\%%a -srcstoretype pkcs12 -srcstorepass %CERTPASS% -providerpath bcprov-jdk16-141.jar -provider org.bouncycastle.jce.provider.BouncyCastleProvider -destkeystore cacerts.bks -deststoretype BKS -deststorepass %PASSWORD% -noprompt
:CACERT_IMP_NO

REM ######################################################################################################################

ECHO Schreibe Zertifikatsliste auf Handy SD-Card
adb push cacerts.bks /mnt/sdcard/ 2>NUL 1>&2
ECHO Arbeiten am Handy werden durchgeführt
adb shell < android.txt

GOTO ENDE

REM ######################################################################################################################

REM ######################
REM ### UNTERPROGRAMME ###
REM ######################

:CHECK_DL
SETLOCAL
        :START
                SET /P CHKDL="Download von %1 %2" || SET CHKDL=%3
                IF  /I "%CHKDL%" EQU "j" ( GOTO CHKDL_DL) ELSE ( GOTO CHKDL_END )
                GOTO START
        :CHKDL_DL
                ECHO Hole "%1"
                "%WGET_PATH%\wget" -qc "%1"
                IF ERRORLEVEL 1 CALL :ERROR_MSG "%1 konnte nicht geladen werden"
        :CHKDL_END
ENDLOCAL
GOTO:EOF

:ERROR_MSG
CLS
ECHO "%~1"
ECHO VORGANG wird abgebrochen.
EXIT

REM ######################################################################################################################

:ENDE
DEL /F /S /Q adb  2>NUL 1>&2 & RD /S /Q adb 2>NUL 1>&2
DEL adb_fastboot_and_other_tools.zip 2>NUL 1>&2
DEL unzip.exe 2>NUL 1>&2
DEL cert_passwords_for_store.txt 2>NUL 1>&2
DEL cert_alias_to_del.txt 2>NUL 1>&2
DEL android.txt 2>NUL 1>&2
DEL cacerts.bks 2>NUL 1>&2
DEL class3_x14E228.crt 2>NUL 1>&2
DEL root_X0F.crt 2>NUL 1>&2
DEL bcprov-jdk16-141.jar 2>NUL 1>&2

CAcert_to_Android.bat


Zurück zu: Andreas Terpotiz


siehe auch FAQ


CAcertFürAndroid-Import/FR (last edited 2021-07-14 10:04:59 by AlesKastner)