Tag: 证书

将证书添加到Java信任库和Sslhandshake

我将带有Java程序的http请求(使用HttpUrlConnection)发送到网站并从那里下载文件。 该网站是“https”并使用证书。 当我尝试运行我的代码时,它会例外: cause javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 我尝试使用我的浏览器(Mozilla)访问此网站。当我检查证书时,有三个证书。该站点包含这些证书。 DigiCert高保证EV根CA. -DigiCert High Assurance CA-3 -companycert(由DigiCert High Assurance CA-3发布) 我用keytool检查我的trustsroe。 信任库仅具有根CA. 是否足够或我必须导入另外2个证书? 或者只是 – 公司? 将中间证书添加到java信任库有什么风险? 我必须这样做吗? 任何人都可以帮忙吗?

从Java 7升级到Java 8后,签名引用失败

我最近将Java从7升级到8,我遇到了一个使用saml请求的服务的问题。 我收到以下错误: Jan 05, 2015 3:42:06 PM org.jcp.xml.dsig.internal.dom.DOMReference validate FINE: Expected digest: oOGa8vH4D/IUG4rulEBiQMbc5as= Jan 05, 2015 3:42:06 PM org.jcp.xml.dsig.internal.dom.DOMReference validate FINE: Actual digest: 7JwuVaoeBca7IojrS0ULT3Fra0Y= Jan 05, 2015 3:42:06 PM org.jcp.xml.dsig.internal.dom.DOMXMLSignature validate FINE: Reference[#XID-44b4791a2aab445ea06a1ae7fd6676c2] is valid: false Jan 05, 2015 3:42:06 PM org.jcp.xml.dsig.internal.dom.DOMXMLSignature validate FINE: Couldn’t validate the References Jan 05, 2015 3:42:06 PM com.sun.xml.wss.impl.dsig.SignatureProcessor verify […]

使用java的交互式命令Runtime.getRunTime.exec()

如何使用Runtime.getRunTime.exec()发送和接收多个输入。 例如,如果我想运行诸如openSSL之类的东西来生成csr,它会询问诸如州,城市,公用名等内容。 Process p = Runtime.getRuntime().exec(cmd); OutputStream out = p.getOutputStream(); //print stuff p.getInputStream(); //Now i want to send some inputs out.write(“test”.getBytes()); //flush and close??? don’t know what to do here //print what ever is returned //Now i want to send some more inputs out.write(“test2”.getBytes()); //print what ever is returned.. and so on until this is […]

扩展密钥库证书的有效时间

有没有办法延长密钥库或证书的时间有效性? 我已经创建了一个有效期为10年的密钥库。 但是,由于谷歌市场的限制,我需要30年的有效期。

如何在java中导入证书?

我有一个证书.cer,我想要一个脚本将它导入证书的Trusted Publisher列表中。 我设法用C#做这件事 X509Certificate2 certificate = new X509Certificate2(filePath.Text, “Telecomitalia1?12524”, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet); X509Store store = new X509Store(StoreName.TrustedPublisher); store.Open(OpenFlags.ReadWrite); store.Add(certificate); store.Close(); 有没有办法在Java中做同样的事情? 非常感谢。

在C#中创建ASN1编码签名以发送到Java

我有私人/公共安全证书。 我的Java同行拥有公钥。 我需要获取一个字符串,对其进行签名,然后将其发送到Java,然后validation数据和签名。 微软和世界其他地方如何对数据进行编码/签名似乎存在一个众所周知的问题,即处理字节的方式。 众所周知,我无法找到解决方案。 如果他们拿走我的字符串和私钥,他们显然可以正确签名并validation它。 如果我拿走我的字符串,我可以在.Net中签名并validation它。 我已经看到了一系列从ASN1转换为Microsoft格式的方法(我认为是P1363),但没有从Microsoft,C#转换为ASN1 for Java。 我不知道如何进行逆向工程。 我已经探索过http://www.codeproject.com/Articles/25487/Cryptographic-Interoperability-Keys,但最终的结果并不是java方面所需要的。 我可以签一个字符串,然后我得到一个签名,但是Java家伙告诉我它需要从MC开始,第一个字节是指标。 我没有看到这个。 谢谢!

使用Java客户端和X-Pack / HTTPS连接到ElasticSearch Cloud 5.x.

是否可以使用X-Pack通过HTTPS连接到ElasticSearch? 随着切换到使用证书,自己的连接方式不再起作用。 我使用证书没有问题,但我需要知道从哪里获取或将密钥上传到云实例,但我无法在任何地方找到信息。 我也没有得到论坛或IRC中任何人的回答。 有没有人成功完成这个? 启动5.x实例时不再有警告,所以我认为这是可能的,但我无法弄清楚如何做到这一点。 我还被告知我不能再启动一个2.4.1实例,只有2.4.2可用(到目前为止太不稳定)所以我有点不能启动一个可用的实例。 更新 有人告诉我,因为使用了公共CA,所以不需要证书。 但是,我仍然无法弄清楚如何连接到5.1.1实例。 Settings settings = Settings.builder() .put(“transport.ping_schedule”, “5s”) .put(“cluster.name”, “”) .put(“xpack.security.transport.ssl.enabled”, “true”) .put(“xpack.security.user”, “elastic:”) .build(); String hostname = “.us-east-1.aws.found.io”; TransportClient client = new PreBuiltXPackTransportClient(settings) .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(hostname), 9343)); 我在这做错了什么? 我收到一个错误,说节点不可用。 Exception in thread “main” NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{xlhZqKBCQniYrN4OWzByFQ}{.us-east-1.aws.found.io}{:9343}]] 我还尝试使用transport_client角色创建用户,但仍然是同样的错误。 更新2 我从这里尝试了示例代码,它仍然无效。 https://github.com/elastic/found-shield-example/blob/master/src/main/java/org/elasticsearch/cloud/transport/example/TransportExample.java 这是您可以测试的实例。 在我弄清楚这个问题之后,我会把它毁掉。 […]

将外部服务器的自签名证书添加到我的Tomcat的受信任证书中

我的Tomcat需要使用SSL(TLS)连接到另一个 Web服务器( https://foreign.example.com )。 foreign.example.com有一个自签名证书,我相信。 当然,我的Tomcat默认不会 – 所以我必须告诉它。 一种方法是: $JRE/bin/keytool -import -alias my -file ssl-cert-myselfsigned.cer -keystore $JRE/lib/security/cacerts 这有效 :我的Tomcat允许SSL连接。 但是,我不喜欢这样做 :它将证书导入我的Java安装的可信密钥。 我不想说:“我的机器上运行Java的每个应用程序都应该信任该证书”。 只有Tomcat(或运行Tomcat的用户)才应该信任它。 所以我尝试将它导入~/.keystore的tomcat-user的密钥库,并使用以下属性设置Tomcat的 : keystoreFile=”${user.home}/.keystore” keystorePass=”thePassphraseICreatedTheKeystoreWith” 但是,这根本不起作用(我相信,这仅适用于我的Tomcat的服务器证书,而不适用于外部服务器的服务器证书,对吧?) 我尝试使用truststoreFile / truststorePass属性,但它们也不起作用。 (这些属性记录在http://tomcat.apache.org/tomcat-6.0-doc/config/http.html ) 有没有办法用外部服务器的服务器证书设置Tomcat,或者可能向java添加一些命令行参数,这使得我的密钥库(和密钥库密码)可用于JVM实例?

使用JKS和/或PFX证书从C#客户端调用Java Web服务

我基本上需要确保我对此服务的请求。 我已经提供了一个JAR测试客户端和两个文件, trust.jks和Client.pfx ,但我不知道如何使用它们:我理解X509Certificate2类以某种方式涉及。 执行测试客户端的命令行如下: java -Djavax.net.ssl.trustStore=trust.jks -Djavax.net.ssl.trustStorePassword=******** -Djavax.net.ssl.trustStoreType=JKS -Djavax.net.ssl.keyStore=Client.pfx -Djavax.net.ssl.keyStoreType=pkcs12 -Djavax.net.ssl.keyStorePassword=******** -jar TestClient.jar https://myServiceurl 它工作正常,所以我都可以看到服务,并且应该正确配置服务本身。 我的C#客户端(它的目标是.NET 2.0)使用普通的Web引用来执行请求: wsReferenceClient service = new wsReferenceClient(); //certificate code here ? //maybe service.ClientCertificates.Add(); ? service.MyRequest(myParameters); 应正确设置服务器设置。 我摸索着使用X509Certificate2方法,但我不能提出一些有意义的东西,所以答案是“你尝试了什么?” 现在的问题是“我真的不知道首先要尝试什么”。 任何帮助将非常感激。

javax.security.cert.X509Certificate vs java.security.cert.X509Certificate?

你有没有发现标题的差异? (对我来说,花了一些时间) 所以我使用了与java.security.cert.X509Certificate连接的bouncy castle来创建证书。 现在我正在寻找一种从原始字节创建java.security.cert.X509Certificate的方法。 我没有任何方法在java.security.cert.X509Certificate执行此操作,但javax.security.cert.X509Certificate有一个(getInstance静态方法)。 问题是我无法将javax.security.cert.X509Certificate为java.security.cert.X509Certificate 。 关于如何做的任何想法,将原始字节转换为java.security.cert.X509Certificate ? 另外,一个抽象类和另一个类之间的区别是什么? 为什么java有两个具有不同function?