我无法将我的spring boot应用程序(v1.5.7)连接到我的mongodb服务器(带有ssl(Win7_x64)的本地主机);v、 3.4.6;自我签名;没有ssl的登录正在运行)。
RoboT3与我的mongodb连接没有问题。
我遵循了几种解决方案,这是我最后一次尝试但没有成功:
在我的主要课程中添加了以下内容:
@Bean
public MongoClientOptions mongoClientOptions() {
System.setProperty("javax.net.ssl.trustStore","ssl/keystore/mongoStore.ts");
System.setProperty("javax.net.ssl.trustStorePassword","123456");
System.setProperty ("javax.net.ssl.keyStore","ssl/keystore/mongoClientKeyCert.jks");
System.setProperty ("javax.net.ssl.keyStorePassword","123456");
MongoClientOptions.Builder builder = MongoClientOptions.builder();
MongoClientOptions options = builder.sslEnabled(true).sslInvalidHostNameAllowed(true).build();
return options;
}
我在本文之后创建了信任存储和keyStore。
ca、客户端和服务器的crt、pem和密钥就是根据这个问题创建的。
引发异常:
com.mongodb.MongoSocketReadException: Exception receiving message
at com.mongodb.connection.InternalStreamConnection.translateReadException(InternalStreamConnection.java:483)
at com.mongodb.connection.InternalStreamConnection.receiveMessage(InternalStreamConnection.java:228)
at com.mongodb.connection.CommandHelper.receiveReply(CommandHelper.java:134)
at com.mongodb.connection.CommandHelper.receiveCommandResult(CommandHelper.java:121)
at com.mongodb.connection.CommandHelper.executeCommand(CommandHelper.java:32)
at com.mongodb.connection.InternalStreamConnectionInitializer.initializeConnectionDescription(InternalStreamConnectionInitializer.java:85)
at com.mongodb.connection.InternalStreamConnectionInitializer.initialize(InternalStreamConnectionInitializer.java:45)
at com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:116)
at com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:113)
at java.lang.Thread.run(Unknown Source)
Caused by: java.net.SocketException: Software caused connection abort: recv failed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at sun.security.ssl.InputRecord.readFully(Unknown Source)
at sun.security.ssl.InputRecord.read(Unknown Source)
at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
at sun.security.ssl.SSLSocketImpl.readDataRecord(Unknown Source)
at sun.security.ssl.AppInputStream.read(Unknown Source)
at com.mongodb.connection.SocketStream.read(SocketStream.java:85)
at com.mongodb.connection.InternalStreamConnection.receiveResponseBuffers(InternalStreamConnection.java:494)
at com.mongodb.connection.InternalStreamConnection.receiveMessage(InternalStreamConnection.java:224)
... 8 common frames omitted
MongoDB(控制台)的错误消息:
SSL对等证书验证失败:自签名证书
MongoDB启动命令:
.\mongod.exe --dbpath .\db --auth -sslMode requireSSL --sslAllowConnectionsWithoutCertificates --sslPEMKeyFile .\ssl\server\server.pem --sslCAFile .\ssl\ca\ca.pem
我能做些什么让它工作?
我们也遇到了类似的问题,我们就是这么做的:
keytool -import -alias clusterkey -file ./path_to_your_crt.crt -keystore mongostore -storetype pkcs12 -storepass your_password -noprompt
openssl pkcs12 -passout pass:your_password -export -out ./output_key_path.pkcs12 -in ./path_to_your_pem.pem
keytool -importkeystore -srckeystore ./output_key_path.pkcs12 -srcstoretype PKCS12 -destkeystore mongoclient -deststoretype pkcs12 -srcstorepass your_password -deststorepass your_password -noprompt
在内部,我像你一样配置了bean
我在使用模块urllib(Python 3.6)时遇到了问题。每次使用该模块时,我都会收到相当于一页的错误。 urllib有什么问题以及如何修复? 这段代码喜欢吐出一口东西: 好像模块本身出了问题。
误差 PHP警告:stream_socket_client():SSL操作失败,代码为1。OpenSSL错误消息:错误:14090086:SSL例程:SSL3_GET_Server_Certifice:证书验证失败
我们的应用程序可以使用Active Directory用户和组。我们在端口389上使用LDAP进行Active Directory操作。现在,我们的一个客户机希望我们添加一个使用LDAP+SSL进行Active Directory通信的选项。 他们告诉我们,他们在域上安装了一个本地CA,并对LDAP使用自签名证书。他们还告诉我们,他们会提供证书,不需要相互信任,我们应该使用Windows证书存储。
问题内容: 我正在尝试通过调用HTTPS REST API 。在开发过程中,我偶然发现以下错误: 因此,我在Google上搜索了一下,并找到了很多可行的解决方案。 使用Jersey客户端的HTTPS https://gist.github.com/outbounder/1069465 如何解决“ java.security.cert.CertificateException:不存在使用者替代名称”
问题内容: 假设我编写了两个Java应用程序:并且它们被部署并在两个单独的服务器上运行(部署到和部署到),并且这两个应用程序需要通过SSL相互通信(双向)。我们还假设每个应用程序都有自己的SSL证书。 我(Java程序员)如何编码并验证彼此的SSL证书?每个CA是否都提供某种我可以使用的RESTful API ?Java是否有自己的证书验证API?我可以使用开放源代码的第三方JAR或服务吗? 当我
我正在尝试通过调用HTTPS REST API。在开发过程中,我偶然发现了以下错误: 所以我用谷歌搜索了一下,找到了大量的解决方案,实际上是有效的。 使用泽西客户端的HTTPS https://gist.github.com/outbounder/1069465 如何修复java.security.cert.证书异常:不存在主题替代名称错误? http://www.mkyong.com/webse