我无法确定CertificateFactory.getInstance("x.509")是否线程安全?有人可以澄清一下吗?https://docs.oracle.com/javase/7/docs/api/java/security/cert/CertificateFactory.html提前致谢。 最佳答案 这个问题很老,但它是该问题的第一个谷歌搜索结果,所以这里是:调用的结果是一个CertificateFactory实现,特别是(在OracleJava中)一个sun.security.provider.X509Factory。该
我有一个Java小程序,用于从用户的PC读取SD卡数据。该小程序位于您登录的网站上。要登录网站,您必须使用浏览器证书。登录后,您会转到SD卡下载页面,小程序会初始化、读取卡数据,并将其发送到页面上的一些JavaScript。我现在遇到的问题是,自从在我的浏览器上安装Java8后,该小程序未加载。具体来说,它不适用于任何版本的IE(已测试8、9、10和11)。它在Firefox中运行良好。我没有尝试过Chrome。我还没有发现其他人有类似的问题。可能是因为它相对较新。有谁知道为什么会发生这种情况并且知道如何解决它?在IE8的Java控制台中有一个看起来相关的堆栈跟踪。这里有一些有趣的片段
问题是,如何解决“证书无效,不能用于验证此网站的身份”错误?。详情如下:在我将Java更新到8u25(1.8.0_25-b18)之前,我有一个签名的小程序一直运行良好。现在,应用程序显示一条警告消息“你想继续吗?与此网站的连接不受信任”。此消息中也有一条注释,“证书无效,不能用于验证此网站的身份”。小程序加载没有问题。但是当用户尝试使用该应用程序的特定功能时,会显示警告消息。发生这种情况时,我已经检查了java控制台,并且在这些行之后显示了这条警告消息:security:ObtaincertificatecollectioninSSLRootCAcertificatestoresecu
我正在使用bouncycaSTLe离线验证X509证书,但遇到了旧CRL的问题。我还没有找到接受过期CRL的可能性,在我看来,如果证书被撤销,它应该在CRL到期后保持撤销状态。此外,如果CRL为空,我只想接受这一点,此时我无法获得更新的CRL。只是为了澄清,这将是用例:2015年创建证书,有效期2015-2020在2017年吊销了带有CRL的证书,key被盗,只创建了1年的CRL,因为我犯了一个错误或计划滚动并且永远不会解决它2019年查看证书,CRL过期,bouncycaSTLe再次接受被吊销的证书——这显然不是我想要的目前我正在将撤销检查设置为false并自行执行检查。我在网上找不
我需要将Windows商店中的证书导出到p12文件。类似于您可以在firefox/IE浏览器中执行的操作,但在JAVA中。我目前能够做到的唯一方法是使用双Cpp包装器或使用JNI包装器的MCPP进行C#,这并不是很有用。我尝试过使用SUNMSCAPI,但我无法做到。感谢任何输入。谢谢。如果以上肯定不可能,是否可以使用这些证书创建keystore? 最佳答案 您可以使用Java标准keystoreAPI,通过BouncyCastle.您可以加载名为Windows-MY的keystore,其中包含存储在Windowskeystore中的
我想使用javakeystore来保存key和证书。谁能分享一些代码来帮助我解决这个问题? 最佳答案 KeyStoreJavadocs页面中应该有足够的示例代码来帮助您入门:https://docs.oracle.com/javase/9/docs/api/java/security/KeyStore.html至于“默认”keystore——我不确定是否存在这样的东西,通常您要么从文件中显式加载它,要么您可以使用以下系统属性对其进行配置:javax.net.ssl.keyStore-keystore位置javax.net.ssl.k
我想在java中使用证书对文件内容进行签名。使用终端和openssl,我可以这样做:opensslsmime-sign-innosign.mobileconfig-outsigned.mobileconfig-signerserver.crt-inkeyserver.key-certfilecacert.crt-outformder-nodetachserver.crt和.key是要签名的文件,我想我理解cacert.crt嵌入在输出内容中。最后,我有一个已签名并受信任的文件。在Java中,我不能使用openssl(不想启动openssl命令)所以,我必须使用lib对其进行签名。为此,
我正在尝试在我的网络服务器中实现一个自签名证书,并且它已经可以与firefox和chrome一起工作(无论是从服务器本身还是从远程机器)......但是我无法让它与java一起工作.我已经创建了一个包含我的证书的keystore文件,但每次我尝试连接到服务器时,它都会给我一个SSLHandshakeException:javax.net.ssl.SSLHandshakeException:java.security.cert.CertificateException:Nosubject找到与IP地址192.168.178.71匹配的替代名称我用于此测试的代码是:publicstatic
[更新]Oracle刚刚修改了加密路线图(https://www.java.com/en/jre-jdk-cryptoroadmap.html),他们将不会弃用SHA-1进行代码签名:2017-03-14目标日期从2017-04-18更改为2017-07-18。所有SHA-1使用的范围缩小:只有TLS会受到影响,*此时代码签名不会受到影响*。这不会以任何方式影响我在下面收到的很好的答案,因为毫无疑问,它将在未来适用。--原帖:尝试在JRE9ea153上运行我们的Webstart部署的Java应用程序,我得到以下弹出窗口:进一步查看详细信息,我看到证书在一段时间内仍然有效:,因此,我想知
在我们的java应用程序中,我们需要使用https协议(protocol)与SSL上的服务器列表进行通信。要通信的服务器列表将在运行时更改。最初我们没有任何服务器的证书。在运行时,我们将获取新服务器的证书并将公钥证书添加到信任库中;并且与服务器的任何新https连接都应使用更新的信任库。我们认为我们应该使用两个信任库,一个是cacerts(默认为jre附带的一个),另一个包含我们在列表中动态添加/删除的服务器证书。这将确保我们不会修改java的默认TrustStore(cacerts)。请建议如何实现这一点。此外,是否有任何方法可以仅对java中的特定线程使用特定的信任库,以便其他(现