我试图使用以下设置创建到MYSQL服务器的ssl连接。我注意到,当我在JDBCURL中指定verifyServerCertificate=false时,Java似乎忽略了我通过系统指定的密钥库和信任库信息。setProperty。因此,我可以注释掉1)中指定的代码,ssl连接仍将成功创建。当我指定verifyServerCertificate=true时,它似乎使用1)设置的值。所以我的问题是,当verifyServerCertificate=false时,JDBC如何在不使用客户机密钥库和信任库的情况下创建ssl连接?谢谢
Java代码
1)
System.setProperty("javax.net.ssl.keyStore",(String) keyStorePath);
System.setProperty("javax.net.ssl.keyStorePassword", keyStorePassword);
System.setProperty("javax.net.ssl.trustStore",(String) trustStorePath);
System.setProperty("javax.net.ssl.trustStorePassword",(String) trustStorePassword));
2)
String jdbcURL = "jdbc:mysql://192.11.11.111/database?verifyServerCertificate=false&useSSL=true&requireSSL=true";
3)
Connection con = DriverManager.getConnection(jdbcURL, dbuser, dbpassword);
MYSQL服务器
拨款声明:
4)
'GRANT ALL PRIVILEGES ON *.* TO 'dbuser'@'%' IDENTIFIED BY PASSWORD \'*2343ASDFWETDFGDSFGSDFGSDSDFWERASF\' REQUIRE SSL WITH GRANT OPTION'
编辑到我的。cnf文件
5)
[mysqld]
ssl-ca=/etc/mysql/ca-cert.pem
ssl-cert=/etc/mysql/server-cert.pem
ssl-key=/etc/mysql/server-key.pem
补充资料
6)我正在使用我创建的证书颁发机构。
7)对查询的响应
show variables like '%ssl%';
have_openssl YES
have_ssl YES
ssl_ca /etc/mysql/certs/ca.pem
ssl_capath
ssl_cert /etc/mysql/certs/server-cert.pem
ssl_cipher
ssl_crl
ssl_crlpath
ssl_key /etc/mysql/certs/server-key.pem
Java肯定可以建立SSL连接,而无需客户端验证服务器的证书链。
正在建立连接的类(javax.net.ssl类)通常会怀疑未经验证的服务器证书,并会导致握手失败。
但是它们为这些类的用户提供了一种方法,实际上可以说“如果服务器的证书不验证,请继续建立连接”。
这就是当您说verifyServerCertificate=false时发生的情况。
从加密的角度来看,SSL连接是完全有效的,但它不是经过身份验证的连接,因为您不知道服务器证书的来源是什么。
我刚刚在Google Cloud上的VM上设置了我的Neo4j服务器,我使用的是企业版4.1.1,并且我已经完成了David Allen关于如何使用LetsEncrypt获得证书的精彩帖子(在这里)。 这一切都工作得很好,我现在有了一个完全安全的Neo4j服务器,我可以通过浏览器()使用我的主机名访问它。但是,我现在在让我的应用程序使用javascript驱动程序连接到服务器时遇到了问题。 我不断
我试图在测试环境中将Java应用程序连接到993上的IMAP服务器邮件。 我试图忽略证书验证,使用以前对类似问题的回答中的建议,如下所示: 但它似乎不起作用,我仍然有一个例外。 所以我的问题是,实际上是否有可能使用IMAPS协议连接到邮件服务器,而不必检查或验证证书? 如果是的话,选择忽略证书验证不是双方的决定吗?JavaApp和邮件服务器?
我们的应用程序可以使用Active Directory用户和组。我们在端口389上使用LDAP进行Active Directory操作。现在,我们的一个客户机希望我们添加一个使用LDAP+SSL进行Active Directory通信的选项。 他们告诉我们,他们在域上安装了一个本地CA,并对LDAP使用自签名证书。他们还告诉我们,他们会提供证书,不需要相互信任,我们应该使用Windows证书存储。
我浏览了互联网,还没有找到一个解决方案或方法来验证证书时,通过HTTPS连接使用TIDWTTP。 我已经连接了一个idsslohandlersocketopenssl组件作为IOHandler,设置SSLModes,等等https://s3.amazonaws.com它无法验证证书。 OpenSSL(Indy)提供 “连接SSL时出错。SSL3\u获取\u服务器\u证书:证书验证失败” OpenS
前几天我经历了应用程序的中断,我需要了解以后如何避免这种情况。 我们有一个运行在Tomcat7上的基于Java的web应用程序。应用程序连接到几个不同的数据源,包括Oracle数据库。 下面是我对连接验证的理解。 连接在空闲时(testWhileIdle=false)、借用时(testOnBorrow=false)、返回时(testOnReturn=false) 由于timeBetweenEvic
我已经尝试让我的应用程序发送电子邮件超过一个小时了,我已经尝试了我在网上找到的所有东西,但我仍然得到了我的问题标题中提到的例外情况。 下面是我使用的代码: 我允许在我的帐户上访问不太安全的应用程序。我也尝试过启用2FA并生成特定于应用程序的密码,但例外情况仍然存在。