1

我是SSL协议的初学者。我想将我的应用程序连接到服务器。服务器找到我Certificate File并想要我的Certificate File. Certificate文件是自签名的。我的应用程序开发者Java和服务器应用程序开发者C。服务器CertificateOpenSSL.

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

我不知道我该怎么办?我尝试了一天,但没有得到任何结果。

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

已编辑

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

4

2 回答 2

1

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

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

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

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

通常,您会像对待普通 tcp 套接字一样对待 sslsocket。:)


作为旁注,您可能会对使用 HTTPS 而不是原始 SSL 感兴趣,具体取决于您的应用程序(只是说;您可能想考虑一下)。

于 2012-05-03T20:05:10.543 回答
0

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

于 2012-05-02T17:59:14.530 回答