我刚刚安装了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());
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);
返回插座;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。