我是SSL
协议的初学者。我想将我的应用程序连接到服务器。服务器找到它Certificate File
并希望我的Certificate File
。 Certificate
个文件是自签名的。我的应用程序由Java
开发,服务器应用程序由C
开发。由Certificate
创建的服务器OpenSSL
。
我现在private/public
是我的自我和服务器certificate
文件。
我不知道我是做什么的?我有一天尝试但没有得到任何结果。
(对不起,如果我使用错误的术语或语法,我正在学习英语。)
被修改
我在网上进行研究,发现我必须研究two-way SSL authentication by java
任何人都有更多信息?
答案 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)即可用作信任库,即可完成此操作。由于您的证书是自签名的,因此只复制背书机构的证书(在您的情况下是服务器证书本身)就足够了。配置您的客户端和服务器以使用他们各自的信任库,它应该工作。