我刚刚安装了OpenJDK的新安装的Ubuntu:
OpenJDK 64-Bit Server VM (build 19.0-b09,mixed mode) on Ubuntu 64 bit 10.10
不知道这是否相关,但我从VMWare Fusion中运行它。
以下行:
javax.net.SSLContext.getDefault(); // same as getInstance("Default") throws the following exception: java.net.socketException: java.security.NoSuchAlgorithmException: Default SSLContext not available
我的同事和我已经在几台机器上尝试了这一切,所有新鲜安装的Ubuntu,并继续得到这个。 我被build议尝试getInstance(“TLSv1”),但是这抛出了相同的错误。 看起来像一些真正的根本不工作,所以我认为我们必须做错了什么。
System.currentTimeMillis与System.nanoTime
'javac is not recognized',Java 7-windows 8
我们需要同一台机器上的mahout和hadoop吗?
为什么命令行实用程序通过Java程序调用时会挂起?
在java中,“5/0”语句不会在我的linux机器上激发SIGFPE信号,为什么?
我想通过编写自己的JNI代码学习如何做JNA
如何在linux上设置JavaPOS?
selenium独立2.45.0; 脚本崩溃firefox 38.0.1
Java运行时环境中致命的SIGSEGV错误
尝试在windows上运行maven时出错
圭多的回答指出了我正确的方向。 这只是一个问题:
sudo apt-get install libbcprov-java
ubuntu发布的openjdk可能会缺少一个JCE提供程序; 从http://www.bouncycastle.org/ (它是一个实现JCE的开源项目)下载bouncycastle crypto API,并将其放到项目类路径中。
然后在你的课上参考下面的示例代码:
静态的 {
Security.addProvIDer(new BouncyCastleProvIDer());
}
public SSLSocket getSSLSocket(){
//加载密钥库
KeyStore ks = KeyStore.getInstance(keystoreType);
ks.load(new fileinputStream(this.keyStorePath),this.keyStorePass.tochararray());
//获取一个KeyManager并初始化它
KeyManagerFactory kmf = KeyManagerFactory.getInstance(“sunx509”);
kmf.init(ks,this.keyStorePass.tochararray());
//使用KeyStore获取TrustManagerFactory和init
TrustManagerFactory tmf = TrustManagerFactory.getInstance(“sunx509”);
tmf.init(KS);
//获取SSLContext来帮助创建SSLSocketFactory
SSLContext sslc = SSLContext.getInstance(“TLS”);
sslc.init(kmf.getKeyManagers(),null,null);
//获取SSLSocketFactory并获取一个SSLSocket
SSLSocketFactory sslsf = sslc.getSocketFactory();
SSLSocket socket =(SSLSocket)sslsf.createSocket(host,port);
返回插座;
}
总结以上是内存溢出为你收集整理的在Ubuntu的OpenJDK的Java SSL破碎?全部内容,希望文章能够帮你解决在Ubuntu的OpenJDK的Java SSL破碎?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)