带有2对公钥/私钥的SSL

时间:2012-05-02 17:37:03

标签: java security ssl

我是SSL协议的初学者。我想将我的应用程序连接到服务器。服务器找到它Certificate File并希望我的Certificate FileCertificate个文件是自签名的。我的应用程序由Java开发,服务器应用程序由C开发。由Certificate创建的服务器OpenSSL

我现在private/public是我的自我和服务器certificate文件。

我不知道我是做什么的?我有一天尝试但没有得到任何结果。

(对不起,如果我使用错误的术语或语法,我正在学习英语。)

被修改

我在网上进行研究,发现我必须研究two-way SSL authentication by java任何人都有更多信息?

2 个答案:

答案 0 :(得分:1)

您将不得不为客户端和服务器使用OpenSSL实现。 该协议是标准的,因此您可以在每一方使用任何实现。

在这里查看客户端示例(在java中): http://stilius.net/java/java_ssl.php

使用标准java类,因此您也可以使用它作为起点来了解开始阅读的javadocs! ;)

至于客户端,你可以使用openssl(它也是一个lib)。我从来没有在C上提供SSL,所以我无法帮助你。

通常,你会像对待普通的tcp套接字那样对待sslsocket。 :)


作为旁注,您可能会使用HTTPS而不是原始SSL,这取决于您的应用程序(只是说;您可能需要考虑它)。

答案 1 :(得分:0)

不确定我是否理解正确;但似乎您的客户端无法连接到您的服务器。您需要在客户端信任库中导入服务器证书。由于您的客户端是Java应用程序,因此您需要Java兼容PKCS格式的信任库。使用Java Keytool实用程序获取有关创建信任任务的帮助。由于您的服务器端是C应用程序,因此您需要为服务器端创建C兼容的信任库。您只需将证书的PEM表示复制到文件(cat server.crt> truststore.pem)即可用作信任库,即可完成此操作。由于您的证书是自签名的,因此只复制背书机构的证书(在您的情况下是服务器证书本身)就足够了。配置您的客户端和服务器以使用他们各自的信任库,它应该工作。