Tag: ssl

Heroku中的SSL重定向

我在让我的Java Web应用程序在Heroku上运行时遇到了麻烦。 这就是我所拥有的: 使用Spring Security的Java Web应用程序(标准war文件),我的web.xml中有一个安全约束部分,如下所示: SSL URLs /j_spring_security_check /secure/account/create /register /login/* / GET POST CONFIDENTIAL 当我将WAR文件部署到Heroku(使用Atlassian Bamboo的Heroku部署插件)并且应用程序启动时,我最终在浏览器中收到“太多重定向”错误 – 看起来它与之间的轻弹有关https和http,但我无法弄清楚我需要做些什么来修复它。 我现在只想使用背负式SSL,因为SSL插件对于我的爱好项目而言相当昂贵(每月20美元)。

JBOSS 7有两个上下文。 一个使用SSL Mutual Auth,另一个只使用SSL

我们在配置JBoss时遇到问题。 我们正在配置它,以便可以同时使用Mutual auth并且不使用它。 喜欢: https://example.com/contextA/ (需要SSL相互身份validation) https://example.com/contextB/ (只需SSL) 可能吗? 我能做的是使JBoss或所有JBoss使用SSL相互认证或不使用。 如何将其配置为同时进行? 我的contextA web.xml: ContextA services /* GET * CONFIDENTIAL CLIENT-CERT 我的contextA jboss-web.xml RequireCertificateDomain ContextB web.xml ContextB *.jsp true 10 true index.jsp SecureApplicationConstraint ContextB Auth applications are secured /login/* Only Users with roles are allowed USER CONFIDENTIAL SecureChannelConstraint Entire site is protected through SSL /contextB/* Require […]

使用STARTTLS将套接字升级到SSLSocket:recv失败

我正在尝试使用STARTTLS将套接字升级到SSLSocket。 在InspIRCd的维基上,这是它应该如何工作的 >> STARTTLS << :test2.chatspike.net 670 nickname :STARTTLS successful, go ahead with TLS handshake (SSL Handshake) 所以在我的代码中我写了(稍微简化) else if (code.equals(“670”)) { SSLSocketFactory sslSocketFactory = ((SSLSocketFactory) SSLSocketFactory.getDefault()); SSLSocket sslSocket = (SSLSocket) sslSocketFactory.createSocket( socket, socket.getInetAddress().getHostAddress(), socket.getPort(), true); sslSocket.startHandshake(); bufferedReader = new BufferedReader(new InputStreamReader(sslSocket.getInputStream(), getEncoding())); bufferedWriter = new BufferedWriter(new OutputStreamWriter(sslSocket.getOutputStream(), getEncoding())); socket = sslSocket; } 然而,有了和没有startHandshake()我总是得到一个recv失败(没有我只是当我尝试从新的bufferedReader读取时得到它 java.io.IOException: […]

java类信任所有用于将文件发送到https Web服务

我需要编写自己的类来告诉mule https连接到服务(wsdl)已经过validation。 我已经有mule子项目接近完成但最后一块丢失,在特定url发送文件。 我想要实现的目标: 建立连接并将xml发送到目标URL 读取也在xml中的响应 服务器使用自签名证书的安全性。 到目前为止我所做的是我从该链接获得证书并将其导入.jks。 然后我可能跟随所有“教程”如何使用https连接器连接到mule服务器,但在我的情况下没有任何工作。 我认为最好的事情是,如果有人可以帮助我创建java类来绕过密钥检查并返回true(已validation)。 就像是: URL url = new URL(“https://www.google.com”); HttpsURLConnection conn= (HttpsURLConnection) url.openConnection(); conn.setHostnameVerifier(new HostnameVerifier() { @Override public boolean verify(String arg0, SSLSession arg1) { return true; } }); 我怎么能在mule子那样做? 我希望它会是这样的 。 我正在使用当前的mule版本(3.5.0) 谢谢! 编辑: 我的配置:

C#客户端通过SSL连接到Java服务器

作为一个团队项目,我需要从C#客户端连接到Java 6.5 SSL服务器,但是当我到达stream.AuthenticateAsClient行时,它会挂起。 C#连接代码 public static void connect(string server, Int32 port) { try { client = new TcpClient(server, port); stream = new SslStream(client.GetStream(), false); stream.AuthenticateAsClient(“MyCNfield”); … … 如果我连接到像https://mail.google.com这样的东西并将MyCNfield设置为mail.google.com ,它可以正常工作,所以我认为它是Java方面。 Java Init部分是: public void initSSL() throws IOException, KeyStoreException, NoSuchAlgorithmException, CertificateException, UnrecoverableKeyException, KeyManagementException { char[] passphrase = “scared”.toCharArray(); System.out.println(java.security.KeyStore.getDefaultType()); boolean handshakedone=false; KeyStore keystore1 = KeyStore.getInstance(“jks”); FileInputStream fis […]

Android SSL HostName未经过validation

我有一个自签名服务器硬编码端口52428.即使我覆盖HostNameVerifier始终返回true,我的客户端应用仍然会收到“主机名未经validation”。 当我将主机名从IP地址更改为DNS时,会弹出另一个错误,指出“无法解析主机:没有与主机名关联的地址” 这是我的代码: private class SSLConnect extends AsyncTask { @Override protected String doInBackground(Void… values) { //String https_url = “https://www.google.com/”; //String https_url = “https://192.168.0.106:52428/webserveradmin/preferences”; String https_url = “https://home-pc:52428/webserveradmin/preferences/”; String response; try { TrustManager[] tm = new TrustManager[]{ new X509TrustManager() { @Override public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { } @Override public void checkServerTrusted(X509Certificate[] chain, […]

如何检查X509证书是否已在Java中被撤销?

我已经在这里搜索了所有地方,并在其他社区询问,我一直转发到讨论规范的oracle文档。 但是,该文档更多地涉及方法的命名和整体架构,并且实际上没有提出一种方法来讨论如何实际编写一些代码来检查x509证书是否被撤销。 也许这个只是我的头脑? 但我绝对会感激,如果有人可以用一个片段帮我解决问题,我一直在用一块墙撞在墙上大约一个星期。

有效证书上的JDK 11 SSL错误(在以前的版本中工作)

以下代码在JDK 11中引发错误: HttpURLConnection con = (HttpURLConnection) new URL(“https://sis.redsys.es/sis/realizarPago”).openConnection(); con.setRequestMethod(“GET”); con.getResponseCode(); 错误是: javax.net.ssl.SSLHandshakeException: extension (10) should not be presented in server_hello at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:128) at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:117) at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:312) at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:268) at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:259) at java.base/sun.security.ssl.SSLExtensions.(SSLExtensions.java:71) at java.base/sun.security.ssl.ServerHello$ServerHelloMessage.(ServerHello.java:169) at java.base/sun.security.ssl.ServerHello$ServerHelloConsumer.consume(ServerHello.java:860) at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:390) at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:445) at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:422) at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:178) at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:164) at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:877) at java.base/sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:810) at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:383) at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:567) 它在任何以前的JDK中工作(我在7,8,9和10中测试过)。 […]

将多个SSL证书固定添加到Android KeyStore不起作用。 (来自资源文件)

我想将多个证书从Resource文件添加到Android KeyStore: if (sslContext==null) { // loading CA from an InputStream InputStream is = AVApplication.getContext().getResources().openRawResource(R.raw.wildcard); String certificates = Converter.convertStreamToString(is); String certificateArray[] = certificates.split(“—–BEGIN CERTIFICATE—–“); for (int i = 1; i < certificateArray.length; i++) { certificateArray[i] = "—–BEGIN CERTIFICATE—–" + certificateArray[i]; //LogAV.d("cert:" + certificateArray[i]); // generate input stream for certificate factory InputStream stream = IOUtils.toInputStream(certificateArray[i]); // […]

HttpClient支持多种TLS协议

我们正在编写一个必须使用HTTPS与几台服务器通信的应用程序。 它需要与AWS(使用AWS库)以及使用TLS 1.2的一些内部服务进行通信。 我开始通过更改我的HttpClient来使用TLS 1.2 SSLContext: public static SchemeRegistry buildSchemeRegistry() throws Exception { final SSLContext sslContext = SSLContext.getInstance(“TLSv1.2”); sslContext.init(createKeyManager(), createTrustManager(), new SecureRandom()); final SchemeRegistry schemeRegistry = new SchemeRegistry(); schemeRegistry.register(new Scheme(“https”, 443, new SSLSocketFactory(sslContext))); return schemeRegistry; } 并将此SchemeRegistry注入到DefaultHttpClient对象中(通过spring),但这样做我从AWS得到错误,因此我假设(我可能错了)AWS不支持TLS 1.2(如果我只是,我不会收到此消息使用正常的DefaultHttpClient): AmazonServiceException: Status Code: 403, AWS Service: AmazonSimpleDB, AWS Request ID: 5d91d65f-7158-91b6-431d-56e1c76a844c, AWS Error Code: InvalidClientTokenId, AWS Error […]