2012-04-09 9 views
0

On ermöglicht ssl-Modus in Tomcat 7, erhalte ich die folgende Fehlermeldung auf meinem Kater logsjava.io.IOException: Ungültige Schlüsselspeicher-Format mit Tomcat-Server

I .key-Datei mit OpenSSL wie unten

genrated habe
openssl genrsa -des3 -out localhost 2048 

Und ich den Weg zu meiner Schlüsseldatei in tomcat server.xml gegeben

SCHWEREN: Fehlern mit protocol [ "http-bio-8443"] java.io.IOException zugehörigen Endpunkt initialisieren : Ungültiges Keystore-Format

Antwort

2

openssl genrsa -des3 -out localhost 2048 generiert einen privaten Schlüssel. Um einen Webserver mit HTTPS zu betreiben, benötigen Sie einen privaten Schlüssel und ein Zertifikat. Sie benötigen einen Schritt, um ein Zertifikat zu generieren.

Sie können HTTPS in Tomcat mit 2 fast völlig unterschiedlichen Ansätzen konfigurieren, je nachdem, ob Sie den APR-Anschluss verwenden oder nicht.

Wenn Sie die APR connector verwenden, ist es sinnvoll, OpenSSL zu verwenden, um die Schlüssel/das Zertifikat zu generieren, da es das erwartete Format ist. (Es gibt eine Reihe von Tutorials, um selbstsignierte Zertifikate mit OpenSSL zu generieren, wenn ein selbstsigniertes Zertifikat für Ihre Umgebung ausreicht.)

If you're not using APR, müssten Sie die mit OpenSSL generierten Schlüssel/Cert in einen Keystore konvertieren Format, das von Ihrer JRE unterstützt wird. Von OpenSSL kommend ist die Umwandlung Ihres privaten Schlüssels + in einen PKCS # 12-Speicher (.p12) normalerweise am einfachsten: Dies wird direkt über Oracle/OpenJDK mit dem Keystore-Typ PKCS12 unterstützt. (Sie könnten Ihre PKCS # 12-Datei in einen JKS-Speicher konvertieren, aber das ist nicht notwendig.)

Wenn Sie jedoch noch keine Schlüssel/Zertifikate haben, ist die einfachste Möglichkeit, ein selbstsigniertes Zertifikat für Tomcat zu generieren Verwenden Sie keytool direkt. Dies erzeugt einen JKS Schlüsselspeicher, der der Standardtyp ist. keytool -genkey generiert nicht nur einen Schlüssel/ein Paar und reicht aus, um eine CSR zu erstellen, sondern assoziiert ein selbstsigniertes Zertifikat (zumindest vorübergehend, bis Sie das von einer CA stammende Zertifikat ggf. importieren).

-2

Java-basierte Systeme, einschließlich Tomcat, benötigen Speicher im PKCS-Format. Also, zuerst müssen Sie Ihre Stores korrekt erstellen und dann folgen Sie dem Tomcat Guide, um Tomcat zu konfigurieren, um sie zu verwenden. Ihr Store-Format und die Konfiguration scheinen nicht korrekt zu sein.

+1

Das stimmt nicht. Erstens hängt es davon ab, ob Sie APR verwenden oder nicht. Zweitens ist der Standard-Keystore-Typ immer noch JKS. Grundsätzlich kann jeder Keystore-Typ verwendet werden, der von einem der Sicherheitsprovider unterstützt wird. Dies hängt von den Providern ab. Auf Oracle/OpenJDK (mit den Sun-Providern) können Sie JKS, PKCS # 12, PKCS # 11 und NSS verwenden. – Bruno

Verwandte Themen