Verschlüsseln tomcat-keystore-Kennwort
Gibt es eine option zum verschlüsseln keystorePass Wert in tomcat server.xml?
Ich will nicht, dass es eine nur-text -
<Connector port="8403" //...
keystorePass="myPassword" />
- Wo dachten Sie speichern die Schlüssel zum entsperren das Kennwort zum entsperren des keystorePass? Nur aus Interesse.
- Ich bin mir bewusst, dass dies nicht eine einfache Frage. Ich verlange zu wissen, ob es eine standard-Lösung.
- Nein, es gibt auf standard-Lösung außer vielleicht das überschreiben des Connector als ich unten erwähnt, aber das ist in keiner Weise ein standard-Lösung und mehr ein rechter hacken.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn jemand hat Zugang zu Ihren server.xml die nur-text-Wert Ihrer keystorePass erscheinen, sind nur eine Ihrer sorgen.
Wenn jemand Zugriff hat, von dort, Sie tun könnte viel mehr Schaden. Verschlüsseln Sie das Kennwort hier ist wirklich nur das verschieben das problem an anderer Stelle als Sie dann jemanden finden konnte, der Verschlüsselungs-Schlüssel für diesen Verschlüsselungsschlüssel (ein bisschen wie eine russische Puppe).
Wenn Sie möchten, um das Kennwort zu verschlüsseln, müssen Sie das überschreiben der Stecker
Umsetzung zum entschlüsseln der verschlüsselten Kennwort, so dass der eigentliche pwd ist
zugänglich oder verfügbar zu tomcat.
Gibt es einen besseren Weg, als einfach mit der XML-Codierung.
Erstellen eines Verschlüsselungs-Klasse zum verschlüsseln und entschlüsseln Ihr Passwort.
Und überschreiben Http11Nio2Protocol Klasse, etwas ähnliches wie den folgenden code.
}
Hinweis: EncryptService ist unsere eigene Verschlüsselung-Klasse.
Und konfigurieren Sie die überschriebene Klasse in das Protokoll-Attribut in server.xml wie unten.
Hoffe, das hilft.
java.lang.ClassNotFoundException: listener.Http11Nio2Protocol
.Konfrontiert mit dem gleichen problem. Die Anforderungen der Kunden zu "verstecken" alle Kennwörter.
So, einfachste Weg, um pass-audit - von Tomcat Wiki.
Gehe zu Seite http://coderstoolbox.net/string/#!encoding=xml&Aktion=encode&charset=none und Kodieren Sie übergeben, um der XML-Ansicht.
Somit
<Connector>
- element sieht wie folgt aus:Waren wir auch vor ähnlichen problem, aber wir haben unsere eigene Verschlüsselung und Entschlüsselung der Logik in Angriff zu nehmen. Hier ist der code
Anderen Klasse
Logik, die generierten Hash-code
Dies ist, wo wir erweitert die Klasse org.apache.coyote.http11.Http11Nio2Protocol die in tomcat-coyote-8.0.29.jar die in den lib-Ordner von tomcat 8. So, während diese Klassen zu kompilieren tomcat-coyote-8.0.29.jar vorhanden sein sollten.
Dies ist, wo Benutzer muss Passwort eingeben in cmd sollte zerlegt werden
Dies ist, wo Sie halten Ihre Passwort-Schlüssel. Ändern Sie es.
kompilieren oben genannten Klassen zu generieren, die class-Dateien mit den nachstehenden Befehl im cmd. Erinnern tomcat-coyote-8.0.29.jar vorhanden sein sollte in den gleichen Ordner, in dem alle java-Dateien vorhanden sind.
Stellen Sie ein Glas mit der erzeugten class-Datei verwenden Sie diesen Befehl in cmd
Dadurch wird eine jar-Datei PasswordEncryptor.jar
Fügen Sie den generierten PasswordEncryptor.jar in den lib-Ordner von Tomcat8. also apache-tomcat-8.5.9\lib
Nun gehen Sie zu diesem Speicherort, und geben Sie unten den Befehl zum generieren des Hash-Passwort.
Nun gehen Sie zur apache-tomcat-8.5.9\conf und Bearbeiten server.xml
Verwenden Sie das gehashte Passwort in keystorpasss Zertifikat
Mitteilung ist das Protokoll der benutzerdefinierten Klasse name.
Hoffe, dies wird Ihnen helfen.
Dank
Hier ist eine praktische Perl-one-liner in XML Kodieren Passwort: