2010-04-09 9 views
7

Ich versuche, einen Tomcat-Server mit SSL zu konfigurieren. Ich habe so ein Schlüsselpaar erzeugt:Importieren von Thawte-Test-Zertifikaten in einen Java-Keystore

$ keytool -genkeypair -alias tomcat -keyalg RSA -keystore keys 

Next ich eine Zertifikatsignierungsanforderung erzeugen:

$ keytool -certreq -keyalg RSA -alias tomcat -keystore keys -file tomcat.csr 

Dann copy-paste ich den Inhalt tomcat.csr in eine Form auf Thawte Webseite, für einen Versuch zu fragen SSL-Zertifikat Dafür bekomme ich zwei Zertifikate mit -----BEGIN ... -----END, die ich unter tomcat.crt und thawte.crt speichere. (Thawte nennt das zweite Zertifikat ein "Thawte Test CA Root" -Zertifikat).

Wenn ich versuche, eine von ihnen zu importieren es fehlschlägt:

$ keytool -importcert -alias tomcat -file tomcat.crt -keystore keys 
Enter keystore password: 
keytool error: java.lang.Exception: Failed to establish chain from reply 

$ keytool -importcert -alias thawte -file thawtetest.crt -keystore keys 
Enter keystore password: 
keytool error: java.lang.Exception: Input not an X.509 certificate 

die -trustcacerts Option Hinzufügen, um einen dieser Befehle entweder gar nichts ändern.

Irgendeine Idee, was ich hier falsch mache?

Antwort

14

Ich verstand endlich, was hier vor sich ging. Es stellt sich heraus, dass die Antworten, die ich von Thawte erhalten habe, als PKCS # 7 formatiert sind, während keytool ein Zertifikat im X.509-Format erwartet.

openssl kann verwendet werden, um Zertifikate von einem Format in ein anderes zu konvertieren:

$ openssl pkcs7 -in thawtetest.crt -print_certs | 
    openssl x509 > thawtetest.x509 

Jetzt können Sie thawtetest.x509 mit keytool und tomcat.crt direkt dahinter importieren.

+0

Danke ... Du würdest denken, sie würden dies in der E-Mail erwähnen ... Da der Zwischenruf (auch in der E-Mail) x509 ist! –

0

Sie sollten PKCS # 7-Ketten mit keytool importieren können, solange Sie eine neuere Version verwenden. Das Exportieren der Zertifikate in verschiedene Dateien funktioniert ebenfalls, aber wenn Sie eine aktuelle Version von Keytool verwenden, sollte es kein Problem sein, die PKCS # 7-Datei selbst zu importieren.

0

Nachdem ich in die gleichen Schwierigkeiten geraten bin, habe ich this post gefunden, was mir geholfen hat. Ich legte die Test-Zertifikate, die ich erhielt, in eine einzige Datei und verwendet Keytool zu importieren sicher, die ALIAS (Keytool-Alias-Param) verwendete ich war (dh nicht den gleichen Alias, den ich beim Erstellen der Zertifikate für die Anfrage verwendet). Es ist eine bizarre Fehlermeldung, da es einfach nicht gefällt, dass Sie versuchen, in denselben Alias ​​zu importieren.