Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jdbc 由于cloud foundry上的SSL错误,JaxB未解组?_Jdbc_Spring Boot_Ssl Certificate_Cloud Foundry - Fatal编程技术网

Jdbc 由于cloud foundry上的SSL错误,JaxB未解组?

Jdbc 由于cloud foundry上的SSL错误,JaxB未解组?,jdbc,spring-boot,ssl-certificate,cloud-foundry,Jdbc,Spring Boot,Ssl Certificate,Cloud Foundry,我有一个web应用程序,使用thymeleaf、springboot、angularjs和oracle sql developer db 在本地,我可以连接并从oracle获取值。但当我将我的应用程序推到CloudFoundry时,我得到的状态是=500 错误 我正在解组的url具有不受信任的证书(“您的连接不安全”)。我将cacerts添加到我的jvm中,这允许它在本地工作。但我相信我需要将cacerts添加到CloudFoundry中。我怎样才能做到呢 SSL错误 ERR java.net

我有一个web应用程序,使用thymeleaf、springboot、angularjs和oracle sql developer db

在本地,我可以连接并从oracle获取值。但当我将我的应用程序推到CloudFoundry时,我得到的状态是=500

错误

我正在解组的url具有不受信任的证书(“您的连接不安全”)。我将cacerts添加到我的jvm中,这允许它在本地工作。但我相信我需要将cacerts添加到CloudFoundry中。我怎样才能做到呢

SSL错误

 ERR java.net.ConnectException: Connection timed out  
 ERR at java.net.PlainSocketImpl.socketConnect(Native Method)  
 ERR at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)  
 ERR at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)  
 ERR at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)  
 ERR at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)  
 ERR at java.net.Socket.connect(Socket.java:589)  
 ERR at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:668)  
 ERR at sun.net.NetworkClient.doConnect(NetworkClient.java:180)  
 ERR at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)  
 ERR at sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:173)  
 ERR at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:367)  
 ERR at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)  
 ERR at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:264)  
 ERR at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191)  
 ERR at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1105)  
 ERR at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)  
 ERR at rest.springframework.controllers.IndexController.getDetails(IndexController.java:59)  
 ERR at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
 ERR at java.lang.reflect.Method.invoke(Method.java:498)  
 ERR at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:999)  
ERR at java.util.concurrent.FutureTask.get(FutureTask.java:205)
ERR at io.pivotal.springcloud.ssl.SslCertificateTruster.getUntrustedCertificateInternal(SslCertificateTruster.java:90)
ERR at io.pivotal.springcloud.ssl.SslCertificateTruster.getUntrustedCertificate(SslCertificateTruster.java:66)
ERR at io.pivotal.springcloud.ssl.CloudFoundryCertificateTruster.trustCertificatesInternal(CloudFoundryCertificateTruster.java:44)
ERR at io.pivotal.springcloud.ssl.CloudFoundryCertificateTruster.trustCertificates(CloudFoundryCertificateTruster.java:32)
ERR at org.springframework.boot.SpringApplication.createSpringFactoriesInstances(SpringApplication.java:420)
ERR at org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:403)
ERR at org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:394)
ERR at org.springframework.boot.SpringApplication.initialize(SpringApplication.java:261)
ERR at org.springframework.boot.SpringApplication.<init>(SpringApplication.java:237)
ERR at org.springframework.boot.SpringApplication.run(SpringApplication.java:1175)
ERR at rest.springframework.SpringBootWebApplication.main(SpringBootWebApplication.java:13)
ERR at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
ERR at java.lang.reflect.Method.invoke(Method.java:498)
ERR at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
ERR at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
ERR at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)

新堆栈跟踪错误

 ERR java.net.ConnectException: Connection timed out  
 ERR at java.net.PlainSocketImpl.socketConnect(Native Method)  
 ERR at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)  
 ERR at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)  
 ERR at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)  
 ERR at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)  
 ERR at java.net.Socket.connect(Socket.java:589)  
 ERR at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:668)  
 ERR at sun.net.NetworkClient.doConnect(NetworkClient.java:180)  
 ERR at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)  
 ERR at sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:173)  
 ERR at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:367)  
 ERR at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)  
 ERR at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:264)  
 ERR at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191)  
 ERR at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1105)  
 ERR at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)  
 ERR at rest.springframework.controllers.IndexController.getDetails(IndexController.java:59)  
 ERR at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
 ERR at java.lang.reflect.Method.invoke(Method.java:498)  
 ERR at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:999)  
ERR at java.util.concurrent.FutureTask.get(FutureTask.java:205)
ERR at io.pivotal.springcloud.ssl.SslCertificateTruster.getUntrustedCertificateInternal(SslCertificateTruster.java:90)
ERR at io.pivotal.springcloud.ssl.SslCertificateTruster.getUntrustedCertificate(SslCertificateTruster.java:66)
ERR at io.pivotal.springcloud.ssl.CloudFoundryCertificateTruster.trustCertificatesInternal(CloudFoundryCertificateTruster.java:44)
ERR at io.pivotal.springcloud.ssl.CloudFoundryCertificateTruster.trustCertificates(CloudFoundryCertificateTruster.java:32)
ERR at org.springframework.boot.SpringApplication.createSpringFactoriesInstances(SpringApplication.java:420)
ERR at org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:403)
ERR at org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:394)
ERR at org.springframework.boot.SpringApplication.initialize(SpringApplication.java:261)
ERR at org.springframework.boot.SpringApplication.<init>(SpringApplication.java:237)
ERR at org.springframework.boot.SpringApplication.run(SpringApplication.java:1175)
ERR at rest.springframework.SpringBootWebApplication.main(SpringBootWebApplication.java:13)
ERR at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
ERR at java.lang.reflect.Method.invoke(Method.java:498)
ERR at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
ERR at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
ERR at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
java.util.concurrent.FutureTask.get(FutureTask.java:205)处的错误 io.pivotal.springcloud.ssl.SslCertificateTruster.getUntrustedCertificateInternal(SslCertificateTruster.java:90)处出错 io.pivotal.springcloud.ssl.SslCertificateTruster.getUntrustedCertificate处出错(SslCertificateTruster.java:66) io.pivotal.springcloud.ssl.CloudFoundryCertificateTruster.trustCertificatesInternal出错(CloudFoundryCertificateTruster.java:44) io.pivotal.springcloud.ssl.CloudFoundryCertificateTruster.trustCertificates处出错(CloudFoundryCertificateTruster.java:32) org.springframework.boot.SpringApplication.createspringfactorieinstances(SpringApplication.java:420)中出现错误 org.springframework.boot.SpringApplication.getspringfactorieinstances(SpringApplication.java:403)中出现错误 org.springframework.boot.SpringApplication.getspringfactorieinstances(SpringApplication.java:394)上的错误 org.springframework.boot.SpringApplication.initialize(SpringApplication.java:261)处出错 错误出现在org.springframework.boot.SpringApplication。(SpringApplication.java:237) 错误位于org.springframework.boot.SpringApplication.run(SpringApplication.java:1175) rest.springframework.SpringBootWebApplication.main(SpringBootWebApplication.java:13) sun.reflect.NativeMethodAccessorImpl.invoke处出错(NativeMethodAccessorImpl.java:62) java.lang.reflect.Method.invoke处出错(Method.java:498) org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)处出错 org.springframework.boot.loader.Launcher.launch(Launcher.java:87)上的错误 org.springframework.boot.loader.Launcher.launch(Launcher.java:50)上的错误
为什么这项工作只能在本地找到,而不能在云端找到?

有多种方法可以将CA证书添加到容器中:


最简单的方法可能是使用
cf set env Java_OPTS'-Djavax.net.ssl.TrustStore=classpath:resources/config/TrustStore'
或使用应用程序清单中的“env”属性将Java VM指向应用程序中绑定的cacert文件。

如果控制CloudFoundry平台,则可以使用以下方法:

1) 通过PCF运营经理或bosh添加证书

2) 将buildpack配置为使用自定义证书信任存储

cf set env app JBP_CONFIG_CONTAINER_CERTIFICATE_TRUST_STORE'{enabled:true}'

链接:


首先,您必须为下载的证书创建jks文件。您可以从JDK-bin中找到keytool

keytool-importcert-file“your.cer”-keystore-your.jks-别名“testAlias”

将.jks文件作为资源添加到spring启动项目中

使用application.properties中的配置设置证书存储的路径和密码 例如:

从应用程序启动加载它

例如:

相关问题


“我需要云配置文件吗?”-是的,可能还需要防火墙规则,允许PCF连接到未在云上运行的Oracle数据库。@duffymo用于云配置。我是否只添加cloud.datasource.url等…我认为您还需要一个服务来连接到实例。另外,请检查您的日志。500错误意味着您的应用程序失败,日志中有一个堆栈跟踪来告诉您失败的原因。连接超时通常意味着无法访问主机。您可能需要检查防火墙规则等。我按照您所说的设置了环境。我重新启动了我的应用程序,但它仍然不工作。我仍然得到与上面堆栈跟踪相同的错误。我不认为这是您实际问题的答案,它看起来与网络相关,而与证书相关。但是,为了提供SSL/cert信任问题的其他解决方案,您可以从我提供的演示中查看这张幻灯片->@DanielMikusa我发现了SSL问题的具体证据。当我从我的应用程序中删除jaxB时,它工作了。它没有解决我的问题。我用命令提示符将.crt保存为.jks。在my app.properties文件中添加了凭据。并创建了一个类来加载ssl信任存储。从u提供的链接中学习您的示例。但我仍然收到同样的错误
ERR at java.util.concurrent.FutureTask.get(FutureTask.java:205)
ERR at io.pivotal.springcloud.ssl.SslCertificateTruster.getUntrustedCertificateInternal(SslCertificateTruster.java:90)
ERR at io.pivotal.springcloud.ssl.SslCertificateTruster.getUntrustedCertificate(SslCertificateTruster.java:66)
ERR at io.pivotal.springcloud.ssl.CloudFoundryCertificateTruster.trustCertificatesInternal(CloudFoundryCertificateTruster.java:44)
ERR at io.pivotal.springcloud.ssl.CloudFoundryCertificateTruster.trustCertificates(CloudFoundryCertificateTruster.java:32)
ERR at org.springframework.boot.SpringApplication.createSpringFactoriesInstances(SpringApplication.java:420)
ERR at org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:403)
ERR at org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:394)
ERR at org.springframework.boot.SpringApplication.initialize(SpringApplication.java:261)
ERR at org.springframework.boot.SpringApplication.<init>(SpringApplication.java:237)
ERR at org.springframework.boot.SpringApplication.run(SpringApplication.java:1175)
ERR at rest.springframework.SpringBootWebApplication.main(SpringBootWebApplication.java:13)
ERR at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
ERR at java.lang.reflect.Method.invoke(Method.java:498)
ERR at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
ERR at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
ERR at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
your.ssl.trust-store = your.jks
your.ssl.trust-password = changeit
public class LoadSSLTrustStore implements CommandLineRunner{


       @Value("${your.ssl.trust-store}")
        private  String keyUrl;
       @Value("${your.ssl.trust-password}")
       private  String keyPassword;
    @Override
    public void run(String... arg0) throws Exception {
        try{
            System.setProperty("javax.net.ssl.trustStore",CustomerMasterServiceApplication.class.getClassLoader().getResource(keyUrl).getFile());
            System.setProperty("javax.net.ssl.trustStorePassword",keyPassword);

        }catch(Exception e){
            LOGGER.error("Error in loading SSL trusted key store for Connect to GCIN service",e);
        }

    }

}