APPがHTTPSにアクセスするには、証明書をjdkにインポートする必要があります。 通常、私は次のようにします。
keytool -keystore "C:\Program Files\Java\jdk1.8.0_71\jre\lib\security\cacerts" -importcert -alias WoSign -file WS_CA1_NEW.cer
アプリがjava-buildpackを使用してCFで実行されている場合、java-buildpackを使用して同じことを行うにはどうすればよいですか?
ありがとう。
すべてのアプリケーション(たとえば、全社的に使用されるCA)で共有される証明書は、BOSH(PCF Ops Managerでも利用可能)の信頼できる証明書サポートを使用して追加できます。 必ずしもすべてではありませんが、多数のアプリケーションで共有される証明書は、JRE内のcacerts
ファイルを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
が信頼したいすべてのCA証明書を含むJava KeyStore
ことです。
最も参考になるコメント
すべてのアプリケーション(たとえば、全社的に使用されるCA)で共有される証明書は、BOSH(PCF Ops Managerでも利用可能)の信頼できる証明書サポートを使用して追加できます。 必ずしもすべてではありませんが、多数のアプリケーションで共有される証明書は、JRE内の
cacerts
ファイルをMETA-INF
内に)、システムプロパティ(-Djavax.net.ssl.trustStore=$PWS/app/META-INF/truststore.jks
)。