Tag: ssl

SSLSocket忽略域不匹配

我正在从SSL Socket读取,但主机与证书不匹配(例如, host = “localhost” )。 我期待exception,但以下代码愉快地与远程服务器进行对话而没有任何问题。 try ( final Socket socket = SSLSocketFactory.getDefault().createSocket(host, port); final OutputStream os = socket.getOutputStream(); final InputStream is = socket.getInputStream()) { os.write((“HEAD / HTTP/1.1\r\nHost: ” + host + “\r\nConnection: close\r\n\r\n”).getBytes()); os.flush(); final byte[] bytes = new byte[1024]; int n; while ((n = is.read(bytes)) != -1) { System.out.print(new String(bytes, 0, n)); […]

使用Java生成证书,公钥和私钥

我正在寻找一个java库或代码来动态生成证书,公钥和私钥,而不使用第三方程序(如openssl)。 我觉得有些东西是使用keytool + openssl但是来自Java代码。 考虑使用ssl和客户端身份validation保护的基于java servlet的Web应用程序。 我希望servlet容器仅在请求时使用Java代码生成客户端证书(例如,pkcs12格式)。

如何在openssl生成的java中使用.key和.crt文件?

我需要java中的非对称加密。 我在http://www.imacat.idv.tw/tech/sslcerts.html中用openssl生成带有自己密码和.crt文件的.key和.crt文件。 如何使用这些.key和.crt文件在Java中提取publickey和私钥?

如何使Java 6与“SSL对等关闭不正确”的SSL连接失败,成功与Java 7一样?

我看到运行Java 6的客户端的SSL连接失败,例外情况如下: Caused by: javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:882) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1188) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1215) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1199) at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:434) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166) at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:133) … 35 more Caused by: java.io.EOFException: SSL peer shut down incorrectly at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:462) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:863) … 41 more 该服务器是一个基于Tomcat 7的应用程序,在Java 7,Linux和Amazon EC2上运行,这是值得的。 我已经找到了很多关于可能的casues的建议,包括偶然连接到非SSL端口等等。我相信我已经把它全部排除了,主要是因为完全相同的客户端在运行Java 7时没有任何变化 。 (两种情况下都是OS X.) 下面我将介绍Java 6的调试输出和Java 7的SSL连接过程。 […]

仅使用SS证书和CA证书而不使用密钥库

我需要设置一个javax.net.ssl.SSLContext ,以便在Jersey-Client应用程序中使用。 我想要做的就是接受自定义根证书的上下文。 是否真的无法生成密钥库文件并导入CA证书?

在Tomcat中读出传入证书

我使用带有客户端身份validation的tomcat http连接器。 如果客户端启动与我的服务器的新连接并发送其证书,我是否可以获取证书并从我的java代码中读取传入证书的公用名。 如果有,怎么样? 谢谢阿迪

什么是使用java url连接完全忽略ssl的简单方法?

我正在构建一个应用程序,定期检查一些RSS源以获取新内容。 其中一些订阅源只能通过https访问,有些则具有自签名或某种方式损坏的证书。 我希望能够永远检查它们。 请注意,此应用程序中的安全性不是问题,目标是以最小的努力访问内容。 我正在使用此代码来规避大多数证书问题: /** * Sets timeout values and user agent header, and ignores self signed ssl * certificates to enable maximum coverage * * @param con * @return */ public static URLConnection configureConnection(URLConnection con) { con.setRequestProperty( “User-Agent”, “Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11”); con.setConnectTimeout(30000); con.setReadTimeout(40000); if (con […]

SSL对等在Java中关闭不正确

我需要通过HTTPS协议提出请求。 我写了以下代码: import java.net.HttpURLConnection; import java.net.URL; import org.junit.Test; public class XMLHandlerTest { private static final String URL = “https://ancine.band.com.br/xml/pgrt1_dta_20150303.xml”; @Test public void testRetrieveSchedule() { try { HttpURLConnection connection = (HttpURLConnection) new URL(URL).openConnection(); connection.setRequestMethod(“HEAD”); int responseCode = connection.getResponseCode(); System.out.println(responseCode); } catch (Exception e) { e.printStackTrace(); } } } 我得到了一个带有java.io.EOFException的exception堆栈跟踪: javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake […]

Java和SSL证书

我正在尝试使用安全套接字层(HTTPS)与我的PHP脚本建立连接,但我发现为了确保最高的安全性/有效性,我必须将我的网站使用的SSL证书导入到我的应用程序中……我不知道该怎么办的东西。 如果有帮助,我的SSL证书不是自签名的,而是由StartSSL提供的并且我使用的是Eclipse IDE。 有人能指出我正确的方向吗? 即我需要哪些文件,我应该在哪里导入它们以及我在Java中需要哪些代码等?

Java:通过资源加载SSL密钥库

如果我有: System.setProperty(“javax.net.ssl.keyStore”, ‘/etc/certificates/fdms/WS1001237590._.1.ks’); System.setProperty(“javax.net.ssl.keyStorePassword”, ‘DV8u4xRVDq’); System.setProperty(“sun.security.ssl.allowUnsafeRenegotiation”, “true”); 我能够毫无问题地打开安全连接。 但是,我想将证书直接存储在战争中,所以我使用:(文件输入流最终将成为资源流,但我这样做是为了让它工作。) System.setProperty(“sun.security.ssl.allowUnsafeRenegotiation”, “true”); KeyStore ks = KeyStore.getInstance(“JKS”); ks.load(new FileInputStream(“/etc/certificates/fdms/WS1001237590._.1.ks”), “DV8u4xRVDq”.toCharArray()); KeyManagerFactory kmf = KeyManagerFactory.getInstance(“SunX509”); kmf.init(ks, “DV8u4xRVDq”.toCharArray()); SSLContext sc = SSLContext.getInstance(“TLS”); sc.init(kmf.getKeyManagers(), null, null); 现在,如果我打开相同的连接,我得到: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure