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.
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 .
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 vonMETA-INF
damit sie nicht versehentlich an Benutzer geliefert werden können) und mit-Djavax.net.ssl.trustStore=$PWS/app/META-INF/truststore.jks
).