Verschlüsseln Sie das Keystore-Kennwort von tomcat

8

Gibt es eine Option zum Verschlüsseln des Wertes keystorePass in tomcat server.xml ? Ich möchte nicht, dass es ein Klartext ist

%Vor%     
AdiB 24.04.2013, 14:03
quelle

5 Antworten

10

Wenn jemand Zugriff auf Ihre server.xml hat, ist der reine Textwert Ihres keystorePass nur einer Ihrer Sorgen.

Wenn jemand von dort Zugang hat, könnten sie viel mehr Schaden anrichten. Wenn Sie das Passwort hier verschlüsseln, verschieben Sie das Problem einfach woanders hin, denn dann könnte jemand den Verschlüsselungsschlüssel für diesen Verschlüsselungsschlüssel finden (ein bisschen wie eine russische Puppe).

Wenn Sie das Passwort verschlüsseln wollen, müssen Sie den Connector überschreiben Implementierung, um das verschlüsselte Passwort zu entschlüsseln, so dass die echte PWD ist zugänglich oder verfügbar für Tomcat.

    
david99world 24.04.2013, 14:26
quelle
7

Es gibt einen besseren Weg, als nur den XML-Code zu verwenden.

Erstellen Sie eine Verschlüsselungsklasse zum Verschlüsseln und Entschlüsseln Ihres Passworts.

Und überschreiben Sie die Klasse Http11Nio2Protocol , die dem folgenden Code ähnelt.

%Vor%

}

Hinweis: EncryptService ist unsere eigene Verschlüsselungsklasse.

Und konfigurieren Sie die überschriebene Klasse im Protokollattribut in server.xml wie unten.

%Vor%

Hoffe, das hilft.

    
user3675974 12.04.2016 04:50
quelle
5

Mit demselben Problem konfrontiert. Der Kunde fordert, alle Passwörter zu "verstecken".

Also, einfachste Art, Audit zu bestehen - von Tomcat Wiki .

Gehen Sie auf die Seite Ссылка und codieren Sie die XML-Ansicht.

Also - <Connector> element sieht folgendermaßen aus:

%Vor%     
setevoy 17.06.2014 08:26
quelle
0

Wir hatten auch ein ähnliches Problem, aber wir haben unsere eigene Verschlüsselungs- und Entschlüsselungslogik entwickelt, um dies zu beheben. Hier ist der Code

%Vor%

Eine andere Klasse

%Vor%

Logik, die einen Hash-Code erzeugt hat

%Vor%

Hier haben wir die Klasse org.apache.coyote.http11.Http11Nio2Protocol erweitert, die in tomcat-coyote-8.0.29.jar im lib-Ordner von tomcat 8 vorhanden ist. Also beim kompilieren dieser Klassen tomcat-coyote -8.0.29.jar sollte vorhanden sein.

%Vor%

Hier muss der Benutzer ein Passwort in cmd eingeben, das gehashed werden soll

%Vor%

Hier bewahren Sie Ihren Passwortschlüssel auf. Du solltest es ändern.

%Vor%

kompilieren über Klassen, um Klassendateien mit dem folgenden Befehl in cmd zu erzeugen. Denken Sie daran, dass tomcat-coyote-8.0.29.jar im selben Ordner vorhanden sein sollte, in dem alle Java-Dateien vorhanden sind.

%Vor%

Erstellen Sie ein JAR mit der generierten Klassendatei mit diesem Befehl in cmd

%Vor%

Dies erstellt eine JAR-Datei PasswordEncryptor.jar

Fügen Sie die generierte PasswordEncryptor.jar in den lib-Ordner von Tomcat8 ein. d.h. Apache-Tomcat-8.5.9 \ lib

Gehen Sie nun zu diesem Ort und geben Sie den folgenden Befehl ein, um das Hash-Passwort zu generieren.

%Vor%

Gehen Sie nun zu apache-tomcat-8.5.9 \ conf und bearbeiten Sie die server.xml

Verwenden Sie das Hash-Passwort in den keystorpasses des Zertifikats

%Vor%

Beachten Sie, dass das Protokoll der Name der benutzerdefinierten Klasse ist.

Hoffe, das wird dir helfen.

Danke

    
AKumar 27.12.2016 09:16
quelle
0

Hier ist ein praktischer Perl-One-Liner zum XML-Kodieren eines Passworts:

%Vor%     
Nicholas Sushkin 14.03.2017 23:31
quelle

Tags und Links