Java-buildpack: Wie importiere ich ein Zertifikat in jdk?

Erstellt am 23. Feb. 2017  ·  4Kommentare  ·  Quelle: cloudfoundry/java-buildpack

Ein Zertifikat muss in jdk importiert werden, damit die APP auf HTTPS zugreifen kann. Normalerweise mache ich das so:

keytool -keystore "C:\Program Files\Java\jdk1.8.0_71\jre\lib\security\cacerts" -importcert -alias WoSign -file WS_CA1_NEW.cer

Wenn meine App in CF mit java-buildpack ausgeführt wird, wie kann ich dasselbe mit java-buildpack tun?
Vielen Dank.

question

Hilfreichster Kommentar

Zertifikate, die von allen Anwendungen gemeinsam genutzt werden (z. B. eine unternehmensweit verwendete Zertifizierungsstelle), können mithilfe der Unterstützung für vertrauenswürdige Zertifikate von BOSH (auch im PCF Ops Manager verfügbar) hinzugefügt werden. Zertifikate, die von mehreren, aber nicht unbedingt allen Anwendungen gemeinsam genutzt werden, können einen Fork des Buildpacks verwenden, der die Datei cacerts in der JRE ersetzt . Schließlich können Zertifikate, die von einer einzelnen Anwendung verwendet werden, innerhalb der Anwendung selbst gepackt werden (normalerweise innerhalb von META-INF damit sie nicht versehentlich an Benutzer geliefert werden können) und mit -Djavax.net.ssl.trustStore=$PWS/app/META-INF/truststore.jks ).

Alle 4 Kommentare

Zertifikate, die von allen Anwendungen gemeinsam genutzt werden (z. B. eine unternehmensweit verwendete Zertifizierungsstelle), können mithilfe der Unterstützung für vertrauenswürdige Zertifikate von BOSH (auch im PCF Ops Manager verfügbar) hinzugefügt werden. Zertifikate, die von mehreren, aber nicht unbedingt allen Anwendungen gemeinsam genutzt werden, können einen Fork des Buildpacks verwenden, der die Datei cacerts in der JRE ersetzt . Schließlich können Zertifikate, die von einer einzelnen Anwendung verwendet werden, innerhalb der Anwendung selbst gepackt werden (normalerweise innerhalb von META-INF damit sie nicht versehentlich an Benutzer geliefert werden können) und mit -Djavax.net.ssl.trustStore=$PWS/app/META-INF/truststore.jks ).

Hallo @nebhale ,

Ich folge https://github.com/cloudfoundry/java-buildpack/blob/master/docs/jre-open_jdk_jre.md#custom -ca-certificates und erhalte beim Staging einen Fehler.
Hast du eine Ahnung davon? Vielen Dank!
Übrigens, "cf push" kann mit dem offiziellen Buildpack erfolgreich sein.

Fehlerprotokolle:

Staging...
-----> Java Buildpack Version: ee0dec3 | https://github.com/zhongyi-zhang/java-buildpack.git#ee0dec3
-----> Downloading Open Jdk JRE 1.8.0_121 from https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_121.tar.gz (found in cache)
       Expanding Open Jdk JRE to .java-buildpack/open_jdk_jre (1.6s)
[Buildpack]                      ERROR Compile failed with exception #<Errno::EEXIST: File exists @ dir_s_mkdir - /tmp/app/.java-buildpack/open_jdk_jre/./lib/security/cacerts>
File exists @ dir_s_mkdir - /tmp/app/.java-buildpack/open_jdk_jre/./lib/security/cacerts
Failed to compile droplet
Exit status 223
Staging failed: Exited with status 223

FAILED
BuildpackCompileFailed

Unsere Tests zeigen, dass dies derzeit funktioniert. Es gibt einen Branch mit einer benutzerdefinierten cacerts Datei in diesem Branch . Sie können eine Anwendung mit der Angabe von -b https://github.com/cloudfoundry/java-buildpack.git#custom-ca-certs pushen und Sie sehen Ihre Bewerbungsphase richtig.

Es ist schwer genau zu sagen, warum Ihre Datei nicht kopiert werden kann, aber es könnten möglicherweise Berechtigungen für die cacerts Datei sein, die Sie dem Fork hinzugefügt haben.

Oh, das Problem ist, dass cacerts ein Java KeyStore das alle CA-Zertifikate enthält, denen Sie vertrauen möchten .

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen