Tag: ssl

如何以编程方式将可信证书导入现有密钥库?

我需要将一个可信证书导入到一个已经存在的密钥库中,这是我的代码,但它给我一个EOFException,可能是什么错误? public void importTrustedCertificate( String alias, byte [] trustedCertificate ) throws Exception { KeyStore keyStore = KeyStore.getInstance( “JKS” ); FileInputStream fileInputStream = new FileInputStream( “keystore” + File.separator + “ClientRegistrarKeyStore.jks” ); FileOutputStream fileOutputStream = new FileOutputStream( “keystore” + File.separator + “ClientRegistrarKeyStore.jks” ); keyStore.load( fileInputStream, “keystore”.toCharArray() ); keyStore.setCertificateEntry( alias, new X509Certificate( trustedCertificate ) ); keyStore.store( fileOutputStream, “keystore”.toCharArray() […]

java.io.IOException:使用Tomcat服务器的密钥库格式无效

在Tomcat 7中启用s​​sl模式时,我在tomcat日志中收到以下错误 我使用openssl生成.key文件,如下所示 openssl genrsa -des3 -out localhost 2048 我在tomcat server.xml中给出了我的密钥文件的路径 严重:无法初始化与ProtocolHandler相关的终点[“http-bio-8443”] java.io.IOException:无效的密钥库格式

Camel Restlet – 如何使用SSL公开服务

我使用最新的Apache Camel(2.14)暴露了一些REST服务,更准确地说是使用Restlet组件( http://camel.apache.org/restlet.html )。 有没有办法在HTTPS下公开服务? 我找不到任何解释如何设置SSL密钥库,密钥库密码等的文档…

Soundcloud JAVA api包装器:SSLException

使用soundcloud JAVA包装器时的API 我收到以下SSL错误 javax.net.ssl.SSLException: hostname in certificate didn’t match: api.soundcloud.com/178.249.136.151 != api.soundcloud.com OR api.soundcloud.com 我正在使用java-api-wrapper-1.1.2-all.jar 发现一个google小组post说使用jar捆绑所有东西(..- all.jar)修复了这个问题,但显然不适合我.. 有人有想法吗?

Java上的SSLexception:Path不与任何信任锚链接

我正在尝试使用MySQL Connector/J (版本5.1.45 )和此AWS RDS证书在Java建立与MySQL database的SSL连接: https : 5.1.45 CA-bundle.pem 但我得到以下Exception : java.security.cert.CertPathValidatorException: Path does not chain with any of the trust anchors 我可以将这个Exception追溯到line 297的MySQL Connector/J class ExportControlled.java : CertPathValidatorResult result = this.validator.validate(certPath, this.validatorParams); 然后我无法继续下去,因为它进入JRE安全类,如CertPathValidator 。 由于我使用MySQL Connector/J来完成整个SSL魔术,我的双手并列,我不知道发生了什么或如何解决这个问题。 证书在MySQL Workbench和Intelli J IDEA Database ,所以我不知道为什么它现在被拒绝了。 我该如何解决?

使用新CSR(而不是原始CSR)续订具有Symantec续订的Java Keystore的命令

两年前,我获得了VeriSign / Symantec SSL证书。 启动此请求时,我们在随机服务器上创建了一个CSR,该服务器与证书的公用名无关。 要创建Java密钥库,我执行了以下两个步骤。 openssl pkcs12 -export -in common_name.cer -inkey common_name.key -out renewal.p12 -name common_name_alias -CAfile NewVerisignIM.cer -caname root keytool -importkeystore -deststorepass XXX! -destkeypass XXX! -destkeystore renewal.keystore -srckeystore renewal.p12 -srcstoretype PKCS12 -srcstorepass XXX! -alias common_name_alias 现在我们的证书即将到期。 在Symantec网站上使用原始条目并创建新CSR时,我们获得了签名证书文件(与上面的common_name.cer相同的文件名),私钥(与上面的common_name.key相同的文件名)。 在签署新的CSR之后,我们没有得到“NewVerisignIM.cer”文件,该文件似乎是根CA和中间CA组合在一个文件中(我相信的CA链)。 所以我不知道如何在没有该文件的情况下重新创建Java Keystore。 我尝试在签名后使用旧的“NewVerisignIM.cer”和新文件,但这不起作用。 这就是我到目前为止所做的一切。 我有一个Java例外 PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到所请求目标的有效证书路径 本网站包含使用原始CSR和使用JKS时的说明。 https://knowledge.symantec.com/kb/index?page=content&id=SO11942&pmv=print&actp=PRINT&viewlocale=en_US 但是这个问题/答案建议使用新的CSR。 使用Java Keytool续订证书 – 重用旧的CSR? 如果我们使用新的CSR,我可以使用哪些命令?

在项目中包含信任库文件的位置

我正在尝试了解SSL并已成功创建通过SSL连接进行通信的客户端/服务器程序。 我已经生成了自己的信任库和密钥库文件,我希望我的客户端和服务器程序可以使用。 到目前为止,我可以使用以下命令通过命令行运行这两个程序: java -Djavax.net.ssl.keyStore=mySrvKeystore -Djavax.net.ssl.keyStorePassword=123456 ServerMain.java 和 java -Djavax.net.ssl.trustStore=mySrvKeystore -Djavax.net.ssl.trustStorePassword=123456 Client.java 但是,我想知道是否有可能以某种方式将文件实现到我的项目中,以便将来当我将其构建到.jar文件中时,我可以将文件与它捆绑在一起。 以前,我通过将它们存储在我的项目文件夹中的res文件夹中并使用“/res/image.jpg”作为路径来完成与图像类似的操作,并且它工作正常。 我通过使用System.setProperty(“javax.net.ssl.trustStore”, “/res/mySrvkeystore.jks”)尝试了相同的方法但它仍然保持返回找不到的文件。 任何帮助都会很棒! 谢谢!

SSL握手过程

我开始考虑安全性并阅读有关SSL握手方案的内容。 在这篇文章中 ,回复者提到对称密钥是在浏览器上生成的,使用服务器的公钥加密并发送到服务器。 然而,在其他文章中,他们提到生成了一个预主密钥,并且代之以用于计算对称密钥。 我可以知道哪个是正确的解释,这个预主密钥是如何生成并用于生成对称密钥的?

Java SSL握手exception – “无法找到有效的证书路径”

我尝试使用安全SSL(TLS)连接和双向SSL身份validation在Java上创建服务器和客户端应用程序。 单向SSL(无客户端身份validation)运行良好。 启用客户端身份validation客户端无法与exception进行握手: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 服务器没有任何例外。 我在服务器和客户端使用Netty。 我为服务器和客户端使用自签名证书。 服务器和客户端 – 它现在是一个物理主机。 我已经使用此工具在truststore中添加了服务器证书: https://java-use-examples.googlecode.com/svn/trunk/src/com/aw/ad/util/InstallCert.java 客户代码。 主要。 public class SClientApp { public static final String HOST = “127.0.0.1”; public static final int PORT = 8888; public static void main(String[] args) throws Exception { System.setProperty(“javax.net.ssl.trustStore”, […]

找不到匹配www.billiving.com的主题替代DNS名称。 为什么这会引起如何解决?

我有www.billiving.com API的集成测试套件。 当API调用端点应该是https://www.billiving.com 。 我的测试套件在windows上完美运行。 但是当它移动到ubuntu 14.x时,它会因以下exception而失败。 [1] 所以我写了这个[2]代码来测试它超出测试套件。 它仍然以相同的例外失败。 所以我试图将billiving.com证书导入JKS但仍然失败,但同样的例外。 我知道作为解决方案,我们可以覆盖Verifier类中的verify方法并返回true。 但我需要适当的解决方案,因为这会导致安全问题。 1)为什么这个错误和为什么它只在linux上。 2)我们如何通过适当的解决方案解决这个问题 APIurl: https : //www.billiving.com/ [1]例外: > javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No subject alternative DNS > name matching www.billiving.com found. at > com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174) > at > com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1747) > at > com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:241) > at > com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:235) > at > com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1209) > at > com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:135) […]