Π‘Π΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π² jdk, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ³Π»ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ HTTPS. ΠΠ±ΡΡΠ½ΠΎ Ρ Π΄Π΅Π»Π°Ρ ΡΡΠΎ ΡΠ°ΠΊ:
keytool -keystore "C:\Program Files\Java\jdk1.8.0_71\jre\lib\security\cacerts" -importcert -alias WoSign -file WS_CA1_NEW.cer
ΠΡΠ»ΠΈ ΠΌΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² CF Ρ java-buildpack, ΠΊΠ°ΠΊ Ρ ΠΌΠΎΠ³Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Ρ java-buildpack?
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ.
Π‘Π΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ, ΠΎΠ±ΡΠΈΠ΅ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, CA, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π² ΠΌΠ°ΡΡΡΠ°Π±Π°Ρ
ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ), ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π΄ΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΡ
ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² BOSH (ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ Π² PCF Ops Manager). Π‘Π΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ, Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ, ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠ²Π΅ΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ° ΡΠ±ΠΎΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ°ΠΉΠ» cacerts
Π² JRE . ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠΏΠ°ΠΊΠΎΠ²Π°Π½Ρ Π²Π½ΡΡΡΠΈ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΠΎΠ±ΡΡΠ½ΠΎ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ
META-INF
ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ Π±ΡΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ), ΠΈ Π½Π° Π½ΠΈΡ
ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ»Π°ΡΡΡΡ Π² ΡΠ²ΠΎΠΉΡΡΠ²Π°Ρ
ΡΠΈΡΡΠ΅ΠΌΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, -Djavax.net.ssl.trustStore=$PWS/app/META-INF/truststore.jks
).
ΠΡΠΈΠ²Π΅Ρ @nebhale ,
Π― ΡΠ»Π΅Π΄ΡΡ https://github.com/cloudfoundry/java-buildpack/blob/master/docs/jre-open_jdk_jre.md#custom -ca-Certificates ΠΈ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ.
ΠΡ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΎΠ± ΡΡΠΎΠΌ Π·Π½Π°Π΅ΡΠ΅? Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ!
ΠΡΡΠ°ΡΠΈ, "cf push" ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠΏΠ΅ΡΠ½ΡΠΌ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° ΡΠ±ΠΎΡΠΊΠΈ.
ΠΡΡΠ½Π°Π»Ρ ΠΎΡΠΈΠ±ΠΎΠΊ:
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
ΠΠ°ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. Π’Π°ΠΌ Π² ΠΎΡΠ΄Π΅Π»Π΅Π½ΠΈΠΈ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌΠΈ cacerts
ΡΠ°ΠΉΠ»Π° Π² ΡΡΠΎΠΉ ΠΎΡΡΠ°ΡΠ»ΠΈ . ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠΊΠ°Π·Π°Π² -b https://github.com/cloudfoundry/java-buildpack.git#custom-ca-certs
ΠΈ Π²Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΡΠ°ΠΏ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π’ΡΡΠ΄Π½ΠΎ ΡΠΎΡΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ Π²Π°Ρ ΡΠ°ΠΉΠ» Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½, Π½ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΡΠ°ΠΉΠ» cacerts
ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π² Π²ΠΈΠ»ΠΊΡ.
Π, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ cacerts
- ΡΡΠΎ Java KeyStore
ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π²ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ CA, ΠΊΠΎΡΠΎΡΡΠΌ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ Π΄ΠΎΠ²Π΅ΡΡΡΡ .
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π‘Π΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ, ΠΎΠ±ΡΠΈΠ΅ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, CA, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π² ΠΌΠ°ΡΡΡΠ°Π±Π°Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ), ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π΄ΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² BOSH (ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ Π² PCF Ops Manager). Π‘Π΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ, Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ, ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠ²Π΅ΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ° ΡΠ±ΠΎΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ°ΠΉΠ»
cacerts
Π² JRE . ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠΏΠ°ΠΊΠΎΠ²Π°Π½Ρ Π²Π½ΡΡΡΠΈ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΠΎΠ±ΡΡΠ½ΠΎ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°ΡMETA-INF
ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ Π±ΡΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ), ΠΈ Π½Π° Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ»Π°ΡΡΡΡ Π² ΡΠ²ΠΎΠΉΡΡΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,-Djavax.net.ssl.trustStore=$PWS/app/META-INF/truststore.jks
).