如何在Windows中使用Windows密钥库(MCS)?
我正在尝试创建一个使用PKI进行身份验证的
Java应用程序.我需要能够从Microsoft证书存储(MCS)检索证书并将其传递到Oracle数据库(11.2).
我使用jdbc:oracle:thin驱动程序进行连接.在谷歌上花了相当长的一段时间后,我已经空了. >设置属性javax.net.ssl.keyStoreType =“Windows-MY” 当然所有这些人都声称成功,但没有任何东西对我有用.我已经尝试了所有我没能找到运气的例子.当我使用Oracle钱包时,我能够成功进行身份验证,因此我知道我的证书很好.如果有人之前已经这样做了,并且愿意发布一些很棒的代码. 我知道大多数人都在使用带有网站的Windows密钥库,因此正在创建他们自己的SSLContext,但我无法想象我是唯一一个想用JDBC做这件事的人(据我所知,这不允许我提供它是一个SSLContext). 这是我认为应该工作的代码,但不是. DriverManager.registerDriver)new OracleDriver()); String url = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCPS)(HOST=host)(PORT=2484))(CONNECT_DATA=(SERVICE_NAME=someName))(SECURITY= (SSL_SERVER_CERT_DN="CN=TESTSERVER")))"; java.util.Properties props = new java.util.Properties(); props.setProperty("javax.net.ssl.keyStoreType","Windows-MY"); props.setProperty("javax.net.ssl.keyStore","NONE"); props.setProperty("javax.net.ssl.trustStoreType","Windows-ROOT"); props.setProperty("javax.net.ssl.trustStore","NONE"); props.setProperty("oracle.net.ssl_server_dn_match","true"); props.setProperty("oracle.net.authentication_services","(TCPS)"); Connection conn = DriverManager.getConnection(url,props); 此代码失败,但有异常: java.sql.SQLRecoverableException: IOException: The Network Adapter could not establish the connection 解决方法
This article应该提供更多详细信息.虽然它不使用系统属性,但Windows-MY显然是一种商店类型,它不是基于文件的.因此,javax.net.ssl.keyStoreType应该是Windows-MY并且javax.net.ssl.keyStore应该设置为NONE(大写可能很重要),请参阅
JSSE Ref Guide (Customization):
如果默认Java信任库不信任您的服务器证书,则可能还需要以类似的方式配置信任库. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- .NET给我什么,Win32不是?
- win10远程桌面工具简单使用方法
- 如何停止使用MinGW(g)编译的程序在Windows中打开控制台窗口
- Windows上的PHP / MySQLi:插入MySQL innoDB表将AUTO_INCRE
- 适用于Windows或Mac上PostgreSQL的良好前端
- windows – 进程ID和进程句柄之间的区别是什么
- microsoft-cognitive – 无法找到Microsoft认知服务的订阅密
- Windows – 如何成功更改执行策略并启用Powershell脚本的执
- Windows Server 2008 R2 RAS VPN:内部接口ip上的访问服务器
- ESXI使用记录---6.7搭建HA