Tag: jsse

如何从RSA Privatekey.pem文件中获取java.security.PrivateKey对象?

我有一个RSA私钥文件(OCkey.pem)。 使用java我必须从这个文件中获取私钥。 使用下面的openssl命令生成此密钥。 注意:我无法在下面的openssl命令中进行任何更改。 openssl> req -newkey rsa:1024 -sha1 -keyout OCkey.pem -out OCreq.pem -subj “/C=country/L=city/O=OC/OU=myLab/CN=OCserverName/” -config req.conf 证书如下所示。 ////////////////////////////////////////////////// ///////// bash-3.00 $ less OCkey.pem —–开始RSA私钥—– Proc-Type:4,ENCRYPTED DEK-Info:DES-EDE3-CBC,EA1DBF8D142621BF BYyZuqyqq9 + L0UT8UxwkDHX7P7YxpKugTXE8NCLQWhdS3EksMsv4xNQsZSVrJxE3 Ft9veWuk + PlFVQG2utZlWxTYsUVIJg4KF7EgCbyPbN1cyjsi9FMfmlPXQyCJ72rd … … cBlG80PT4t27h01gcCFRCBGHxiidh5LAATkApZMSfe6BBv4hYjkCmg == —– END RSA私钥—– ////////////////////////////////////////////////// //////////// 以下就是我的尝试 byte[] privKeyBytes = new byte[(int)new File(“C:/OCkey.pem”).length()]; PublicKey publicKey = KeyFactory.getInstance(“RSA”).generatePublic(new X509EncodedKeySpec(privKeyBytes)); 但得到 […]

使用SSLSocket Java创建应用程序

我想创建一个使用SSLSocket的应用程序:客户端向服务器发送一个String ,服务器将大写该String并发送回客户端进行显示。 SSLServer public class SSLServer { public static void main(String args[]) throws Exception { try{ //Creaet a SSLServersocket SSLServerSocketFactory factory=(SSLServerSocketFactory) SSLServerSocketFactory.getDefault(); SSLServerSocket sslserversocket=(SSLServerSocket) factory.createServerSocket(1234); //Tạo 1 đối tượng Socket từ serversocket để lắng nghe và chấp nhận kết nối từ client SSLSocket sslsocket=(SSLSocket) sslserversocket.accept(); //Tao cac luong de nhan va gui du lieu cua […]

使用自签名证书和SSLEngine(JSSE)的SSL握手

我的任务是实现一个可以在同一端口上处理SSL和非SSL消息的自定义/独立Java Web服务器。 我已经实现了一个NIO服务器,它非常适用于非SSL请求。 我对SSL片段感到非常兴奋,并且可以使用一些指导。 这是我到目前为止所做的。 为了区分SSL和非SSL消息,我检查入站请求的第一个字节以查看它是否是SSL / TLS消息。 例: byte a = read(buf); if (totalBytesRead==1 && (a>19 && a<25)){ parseTLS(buf); } 在parseTLS()方法中,我实例化一个SSLEngine,如下所示: java.security.KeyStore ks = java.security.KeyStore.getInstance(“JKS”); java.security.KeyStore ts = java.security.KeyStore.getInstance(“JKS”); ks.load(new java.io.FileInputStream(keyStoreFile), passphrase); ts.load(new java.io.FileInputStream(trustStoreFile), passphrase); KeyManagerFactory kmf = KeyManagerFactory.getInstance(“SunX509”); kmf.init(ks, passphrase); TrustManagerFactory tmf = TrustManagerFactory.getInstance(“SunX509”); tmf.init(ts); SSLContext sslc = SSLContext.getInstance(“TLS”); sslc.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null); SSLEngine […]

在建立安全连接时,没有共同的密码套件

我正在尝试在两个Java项目之间建立安全连接,但我遇到了SSLHandshakeException(没有共同的密码套件)。 这是在两侧创建套接字的方法: 客户: private SSLSocket getSocketConnection() throws SSLConnectionException { try { /* Load properties */ String keystore = properties.getProperty(“controller.keystore”); String passphrase = properties.getProperty(“controller.passphrase”); String host = properties.getProperty(“controller.host”); int port = Integer.parseInt(properties .getProperty(“controller.port”)); /* Create keystore */ KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType()); keyStore.load(new FileInputStream(keystore), passphrase.toCharArray()); /* Get factory for the given keystore */ TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); […]

在同一JVM上设置多个信任库

我有一个在weblogic服务器上运行的Java应用程序。 该应用程序有两个不同的模块,使用SSL连接到外部Web服务 – 比如模块A和模块B. 模块A – 基于轴构建 – 使用信任库A Moudle B – 基于Spring-ws构建 – 使用信任库B. 模块A存在。 正在介绍模块B. 我需要能够根据调用的模块在JVM中动态设置信任库。 由于某些限制,我没有选项 – 创建自定义密钥管理器。 – 使用一个信任库 我尝试使用System.setProperty im Module B codebase来设置truststore。 但是,仅当模块B首先被调用时才有效。 例如 – 假设我重新启动JVM然后调用模块A – 它在JVM中设置它自己的信任库然后我调用模块B – 它失败 – 它没有在JVM中设置它自己的信任库,即使我已经使用过System.setProperty方法。 我错过了什么,或者只是System.setProperty不会覆盖现有的设置值。 如果是这样,我的选择在这里。

SSLContext初始化

我正在查看JSSE参考指南,我需要获取SSLContext的实例才能创建SSLEngine ,因此我可以将它与Netty一起使用以启用安全性。 要获取SSLContext的实例,我使用SSLContext.getInstance() 。 我看到该方法被多次覆盖,因此我可以选择使用协议和安全提供程序。 在这里 ,我可以看到可以使用的算法列表。 我应该使用哪种算法来实现安全通信? 此外,由于可以指定要使用的安全提供程序,我应该使用哪个提供程序? 谢谢

javax.net.ssl.SSLException:收到致命警报:protocol_version

有没有人遇到此错误? 我是SSL的新手,我的ClientHello有什么明显的错误吗? 抛出该exception时没有ServerHello响应。 任何建议表示赞赏。 *** ClientHello, TLSv1 RandomCookie: GMT: 1351745496 bytes = { 154, 151, 225, 128, 127, 137, 198, 245, 160, 35, 124, 13, 135, 120, 33, 240, 82, 223, 56, 25, 207, 231, 231, 124, 103, 205, 66, 218 } Session ID: {} Cipher Suites: [SSL_RSA_WITH_RC4_128_MD5, SSL_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, […]