Tag: ssl

如何正常检测SSL

我有一个可以绑定到ssl或plain http的Web服务。 配置为知道服务器主机和端口的Java客户端。 当客户端连接时,我构建服务器端点,如http:// host:port / service 。 客户端不知道服务器是否正在使用ssl – 服务器始终绑定到单个端口,以便它是安全的或不安全的。 现在,问题是如何让客户端在不引入其他参数的情况下发现它? 我是否可以挑战普通的http请求,然后在特定的exception情况下回到ssl(或反之)? 或者我必须为客户明确引入新的连接参数?

如何在wildfly 8.2.0服务器中配置ssl?

我想要我的Web应用程序的安全连接。 所以,我想为我的wildfly 8.2.0服务器配置ssl。 我在standalone / configuration文件夹中创建并存储了.keystore文件。 $ keytool -genkey -alias foo -keyalg RSA -keystore foo.keystore -validity 10950 Enter keystore password: secret 必须添加: 在standalone.xml文件中,但有标记: 当我用上面指定的标签替换它时会出现错误: Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[288,106] Message: Unexpected element ‘{urn:jboss:domain:web:1.1}subsystem’

Java TLS套接字:找不到可信证书

让我快速解释一下我正在做什么。 我正在尝试在java中构建我自己的Apple推送通知服务(用于测试目的)。 这项服务得益于TLS套接字。 我有一个java客户端来创建一个TLS套接字来向APN发送推送通知。 我更改了主机URL以将套接字重定向到localhost:2195。 现在我正在尝试编写一个java套接字服务器来获取通知请求。 但是,我在握手期间遇到exception,无法找到解决方法。 注意:我在双方都使用相同的证书,它是一个标准的.p12文件,用于向APN发送推送通知。 这是客户端(简化): KeyStore ks = KeyStore.getInstance(“PKCS12”); ks.load(new FileInputStream(certificatePath), password.toCharArray()); KeyManagerFactory kmf = KeyManagerFactory.getInstance(“sunx509”); kmf.init(ks, password.toCharArray()); TrustManagerFactory tmf = TrustManagerFactory.getInstance(“sunx509”); tmf.init((KeyStore)null); SSLContext sc = SSLContext.getInstance(“TLS”); sc.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null); SSLSocketFactory ssf = sc.getSocketFactory(); SSLSocket socket = (SSLSocket) ssf.createSocket(InetAddress.getLocalHost(), 2195); socket.startHandshake(); 这是服务器: KeyStore ks = KeyStore.getInstance(“PKCS12”); ks.load(new FileInputStream(certificatePath), password.toCharArray()); KeyManagerFactory kmf […]

httpclient jar冲突。如何解决?

//这是我的代码,我在代理后面工作… import org.apache.commons.io.IOUtils; import org.apache.http.HttpHost; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.impl.conn.DefaultProxyRoutePlanner; { HttpHost proxy = new HttpHost(“proxyhost”, 8082); DefaultProxyRoutePlanner routePlanner = new DefaultProxyRoutePlanner(proxy); HttpClient client = HttpClients.custom().setRoutePlanner(routePlanner).build(); HttpResponse response = client.execute(request);} //我的控制台上出现以下错误 Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/http/ssl/SSLContexts at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:966) at TwitterFeeds.main(TwitterFeeds.java:40) Caused by: java.lang.ClassNotFoundException: org.apache.http.ssl.SSLContexts at java.net.URLClassLoader$1.run(Unknown Source) […]

SSL Java java.io.IOException:无效的密钥库格式

我在java中使用SSLServerSocket和java.ssl包中的其他类测试SSL。 当我运行以下代码时,我得到exceptionjava.io.IOException:无效的密钥库格式。 我的代码: package testing; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; import java.security.KeyStore; import javax.net.ServerSocketFactory; import javax.net.ssl.KeyManagerFactory; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLServerSocket; import javax.net.ssl.TrustManager; public class SSLServerTest { public static void main(String[] args) { try { int port = 3000; SSLContext sc = SSLContext.getInstance(“TLSv1.2”); KeyStore ks = KeyStore.getInstance(“JKS”); InputStream ksIs […]

启用S​​SL时出现MQ错误

我们已启用SSL 1. MQ版本’7.1.0.7′ 2.操作系统 – >’Linux 2.6.32-642.11.1.el6.x86_64′ 3.两个月前[2016年8月],其工作正常,启用SSL和禁用模式 Java客户端使用 1. jdk1.7.0_21 2.工作密码/套件 – > SSL_RSA_WITH_RC4_128_SHA RC4_SHA_US 当我尝试连接到MQ v7.1.0.7队列管理器时,应用程序抛出以下错误: com.ibm.mq.MQException: MQJE001: Completion Code ‘2’, Reason ‘2397’. at com.ibm.mq.MQManagedConnectionJ11.(MQManagedConnectionJ11.java:228) at com.ibm.mq.MQClientManagedConnectionFactoryJ11._createManagedConnection(MQClientManagedConnectionFactoryJ11.java:553) at com.ibm.mq.MQClientManagedConnectionFactoryJ11.createManagedConnection(MQClientManagedConnectionFactoryJ11.java:593) at com.ibm.mq.StoredManagedConnection.(StoredManagedConnection.java:95) at com.ibm.mq.MQSimpleConnectionManager.allocateConnection(MQSimpleConnectionManager.java:198) at com.ibm.mq.MQQueueManagerFactory.obtainBaseMQQueueManager(MQQueueManagerFactory.java:882) 在队列管理器错误日志AMQERR01.LOG我看到: AMQ9616: The CipherSpec proposed is not enabled on the server. EXPLANATION: The SSL or TLS subsystem at […]

播放2.1 SSL配置

我是Play的新手,也是为生产配置SSL的过程。 我可以使用自签名证书成功在dev模式下运行,但是当我尝试使用签名证书时,初始客户端握手失败,Play会生成以下堆栈跟踪: play – Error loading HTTPS keystore from conf/keystore.jks java.security.NoSuchAlgorithmException: RSA KeyManagerFactory not available at sun.security.jca.GetInstance.getInstance(GetInstance.java:159) ~[na:1.7.0_11] at javax.net.ssl.KeyManagerFactory.getInstance(KeyManagerFactory.java:139) ~[na:1.7.0_11] at play.core.server.NettyServer$PlayPipelineFactory$$anonfun$sslContext$1.apply(NettyServer.scala:74) [play_2.10.jar:2.1.1] at play.core.server.NettyServer$PlayPipelineFactory$$anonfun$sslContext$1.apply(NettyServer.scala:62) [play_2.10.jar:2.1.1] at scala.Option.map(Option.scala:145) [scala-library.jar:na] at play.core.server.NettyServer$PlayPipelineFactory.sslContext$lzycompute(NettyServer.scala:62) [play_2.10.jar:2.1.1] 我正在运行Play 2.1.1和Java 1.7.0_11。 我已经配置了ssl支持如下: //生成一个csr keytool -certreq -alias server -keyalg RSA -file server.csr -keystore keystore.jks //加载root和中间证书 keytool -import -alias godaddy -keystore keystore.jks […]

Java SSL DH密钥对生成 – Prime大小错误

我目前正在将Reddit OAuth2登录到我的网络应用程序中。 握手和令牌交换在本地测试时工作正常但在服务器上运行时(托管在’OpenShift’DIY盒式磁带上)我收到以下错误: java.security.InvalidAlgorithmParameterException: Prime size must be multiple of 64, and can only range from 512 to 1024 (inclusive) 结果如何 java.lang.RuntimeException: Could not generate DH keypair 我一直在搜索大部分时间,并找到了不同的解决方案,从更改Java版本到使用BouncyCastle。 但是,我正在使用Scribe库,所以我不认为我可以实现BouncyCastle而不需要改变划线的基础,这会破坏它的目的。 安装JCE Unlimited Strength也出现了,但是我不能在OpenShift上做到这一点,因为没有root访问权限(也许可以让他们的团队之一去做)。 使用的java版本(取自java -version ): 本地试验机: java version “1.7.0_51” OpenJDK Runtime Environment (IcedTea 2.4.4) (7u51-2.4.4-1ubuntu1) OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode) OpenShift服务器: java […]

接受Java中的证书

我在通过Java与HTTPS站点交互时遇到问题。 每次程序运行时,我的程序都会使用一个带有不受信任证书的URL。 该程序必须在多个系统上运行。 目前,我有以下内容: public class A{ HostnameVerifier hv = new HostnameVerifier(){ public boolean verify(String urlHostName, SSLSession session){ return true; } }; HttpsURLConnection.setDefaultHostnameVerifier(hv); javax.net.ssl.TrustManager[] trustAllCerts = new javax.net.ssl.TrustManager[1]; javax.net.ssl.TrustManager tm = new miTM(); trustAllCerts[0] = tm; javax.net.ssl.SSLContext sc = null; try { sc = javax.net.ssl.SSLContext.getInstance(“SSL”); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } try { sc.init(null, […]

使用CloseableHttpClient的不受支持的记录版本SSLv2Hello

我正在尝试进行https调用并收到以下错误:不支持的记录版本SSLv2Hello 任何人都可以说明我做错了什么? 谢谢你的帮助。 这是StackTrace: debug:不支持的记录版本SSLv2Hello javax.net.ssl.SSLException:Sun.security上sun.security.ssl.InputRecord.read(未知来源)sun.security.ssl.InputRecord.readV3Record(未知来源)的不受支持的记录版本SSLv2Hello .sl.SSLSocketImpl.readRecord(未知来源)at sun.security.ssl.SSLSocketImpl.performInitialHandshake(未知来源)sun.security.ssl.SSLSocketImpl.startHandshake(未知来源)at sun.security.ssl.SSLSocketImpl.startHandshake(未知来自org.apache.http的org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:275)org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:254)位于org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:318)的.impl.conn.HttpClientConnectionOperator.connect(HttpClientConnectionOperator.java:123)org.apache.http.impl.execchain.MainClientExec.establishRoute (MainCl ientExec.java:363)org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:219)org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:195)at org位于org.apache.http.impl.client的org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:108)上的.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:86) .internalHttpClient.doExecute(InternalHttpClient.java:184)atg.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)at httpcomponents.httpsTest.main(httpsTest.java:135) 这是工作示例: import com.sun.net.ssl.internal.ssl.Provider; import java.io.IOException; import java.security.KeyManagementException; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.security.Security; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import java.text.MessageFormat; import java.util.ArrayList; import java.util.List; import java.util.Timer; import java.util.TimerTask; import java.util.concurrent.TimeUnit; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLException; import javax.net.ssl.SSLSession; import javax.net.ssl.SSLSocket; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; […]