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.
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.
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:
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
Hier ist ein praktischer Perl-One-Liner zum XML-Kodieren eines Passworts:
%Vor%Tags und Links tomcat server.xml