Um certificado precisa ser importado para o jdk para o APP acessar o HTTPS. Normalmente, eu faço assim:
keytool -keystore "C:\Program Files\Java\jdk1.8.0_71\jre\lib\security\cacerts" -importcert -alias WoSign -file WS_CA1_NEW.cer
Se meu aplicativo estiver sendo executado em CF com java-buildpack, como posso fazer a mesma coisa com java-buildpack?
Obrigado.
Os certificados que são compartilhados entre todos os aplicativos (por exemplo, uma CA usada em toda a empresa) podem ser adicionados usando o suporte de certificados confiáveis do BOSH (também disponível no PCF Ops Manager). Os certificados que são compartilhados entre vários, mas não necessariamente todos, os aplicativos podem usar uma bifurcação do buildpack que substitui o arquivo cacerts
no JRE . Finalmente, os certificados que são usados por um único aplicativo podem ser empacotados dentro do próprio aplicativo (normalmente dentro de META-INF
para que não possam ser acidentalmente servidos aos usuários) e referidos com propriedades do sistema (por exemplo, -Djavax.net.ssl.trustStore=$PWS/app/META-INF/truststore.jks
).
Olá @nebhale ,
Eu sigo https://github.com/cloudfoundry/java-buildpack/blob/master/docs/jre-open_jdk_jre.md#custom -ca-certificates e obtenho um erro durante o teste.
Você tem alguma ideia sobre isso? Obrigado!
BTW, "cf push" pode ser bem sucedido usando o buildpack oficial.
Registros de erros:
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
Nossos testes indicam que isso funciona atualmente. Há um branch com um arquivo cacerts
neste branch . Você pode enviar um aplicativo especificando -b https://github.com/cloudfoundry/java-buildpack.git#custom-ca-certs
e verá o estágio do aplicativo corretamente.
É difícil dizer exatamente por que seu arquivo não pode ser copiado, mas podem ser as permissões no arquivo cacerts
que você adicionou à bifurcação.
Oh, o problema é que cacerts
é um Java KeyStore
contendo todos os certificados CA que você gostaria de confiar .
Comentários muito úteis
Os certificados que são compartilhados entre todos os aplicativos (por exemplo, uma CA usada em toda a empresa) podem ser adicionados usando o suporte de certificados confiáveis do BOSH (também disponível no PCF Ops Manager). Os certificados que são compartilhados entre vários, mas não necessariamente todos, os aplicativos podem usar uma bifurcação do buildpack que substitui o arquivo
cacerts
no JRE . Finalmente, os certificados que são usados por um único aplicativo podem ser empacotados dentro do próprio aplicativo (normalmente dentro deMETA-INF
para que não possam ser acidentalmente servidos aos usuários) e referidos com propriedades do sistema (por exemplo,-Djavax.net.ssl.trustStore=$PWS/app/META-INF/truststore.jks
).