我是SSL的新手,并且遇到了一些看似已知的问题。我的应用程序是SSL客户端并调用另一个为双向SSL启用的组件。两个组件中的证书都是正确的,有时连接工作正常。每个服务器都有自己的服务器证书和私钥,但根证书和中间证书相同。服务器中的SSL检查在ApacheSWLB中完成。|-------------|/|Tomcat1||-------------|/|-------------||---------->|ApacheSWLB|/||-------------|\|\|\|-------------||-----------||------------|||Tomcat2||SSLClie
我想在HTTPS站点上的Jetty中运行一个servlet,该站点只需要部分站点(特定URL)的客户端证书。例如:https://example.com/someservlet/public-无需客户证书https://example.com/someservlet/protected-需要客户证书在Apache中,我可以通过指定SSLVerifyClientrequire来完成此操作在里面或这会强制Apache在发出请求后重新协商SSL连接。我不想运行嵌入任何其他东西的Jetty,只是独立运行。这可能吗?Servlet能否以某种方式直接导致这种情况?可以通过配置完成吗?
在我的客户端Ant任务中从Jetty服务器下载文件,我偶尔会得到一个javax.net.ssl.SSLException:SSLpeershutdownincorrectlyatcom.sun.net.ssl.internal.ssl.InputRecord.readV3Record(InputRecord.java:408)atcom.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:360)atcom.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSock
如何使用Java执行HTTP请求并使用X.509证书对其进行签名?我通常使用C#编程。现在,我想做的是类似于以下内容,仅在Java中:privateHttpWebRequestCreateRequest(Uriuri,X509Certificate2cert){HttpWebRequestrequest=(HttpWebRequest)HttpWebRequest.Create(uri);request.ClientCertificates.Add(cert);/*...*/returnrequest;}在Java中,我创建了一个java.security.cert.X509Certi
有人知道关于用Java编写SSL检查器的任何好的教程、站点和/或书籍吗?我正在尝试做可以在这里找到的事情:http://www.sslshopper.com/ssl-checker.html.我不是要创建自签名证书或使用keystore。我希望能够访问任何站点,确定是否存在有效的SSL证书,确定证书上的主机名是否与输入的名称匹配,并确定该证书何时过期。我用谷歌搜索了这个主题,但“如何使用Java创建SSL购物者”没有给我任何结果,我的其他搜索只给我带来了关于如何创建自签名证书的链接。任何帮助将不胜感激。 最佳答案 要首先获取服务器证
在我的示例中有三个证书,假设它们形成一个链,但我还不知道它们中的哪一个签署了哪个:X509Certificatec1=....X509Certificatec2=....X509Certificatec2=....我想知道哪个证书负责签署另一个证书。计划是获取“AuthorityKeyIdentifier”并将其与“SubjectKeyIdentifier”匹配。importorg.bouncycastle.asn1.DEROctetString;privatestaticStringdecodeKey(byte[]e){DEROctetStringoctet=newDEROctetS
我想以编程方式访问需要客户端证书的站点,我在PEM文件中拥有该证书。在此应用程序中,如果可以避免,我不想将它们添加到我的keystore、使用keytool或openssl。我需要直接在代码中处理它们。HttpClienthttpclient=newDefaultHttpClient();HttpGethttpget=newHttpGet("https://my.secure.site.com/url");//TODO:Specifyca.pemandclient.pemhere?HttpResponseresponse=httpclient.execute(httpget);Http
我正在开发一个需要HTTPS的SpringJava应用程序,我关注了Spring'sguidetoconfigureSSL.我的application.properties文件包含以下内容:server.port=8443server.ssl.key-store=classpath:keystore.p12server.ssl.key-store-password=passwordserver.ssl.key-password=passwordserver.ssl.keyStoreType=JCEKSserver.ssl.keyAlias=alias当应用程序运行时,控制台输出Tomc
我想设置我自己的CA以用于cassandra集群,这样我就不必在每次添加新节点时都复制所有证书。我已经阅读了一些关于Cassandra和SSL的教程,但它们都与复制证书有关。我在CA过程中有点迷茫这是我认为我需要做的创建CA一次为每个节点创建一个CSR,然后用我的CA对每个节点进行签名(->另存为nodeX.crt)将node0.crt导入到我的cassandranode0keystore,将node1.crt导入到node1keystore等现在:我需要向信任库添加任何内容吗?我需要对CA文件做些什么吗?将其复制到每个客户端/节点服务器?我需要为我的java客户端提供什么文件?cql
我很好奇为什么有些Web服务器(例如Nginx)以相反的顺序提供客户端SSLDN。Web应用程序正在将DN发布到JavaWeb服务,该服务正在尝试创建Javajavax.naming.ldap.LdapName.标准顺序(LDAP或X500Name):"CN=JimmyBlooptoop,OU=Someplace,OU=Employees,DC=Bloopsoft-Inc"逆序(OpenSSL联机格式)(Nginx返回的内容为_$ssl_client_s_dn_):"/DC=Bloopsoft-Inc/OU=Employees/OU=Someplace/CN=JimmyBlooptoo