2012-05-02 21 views
1

私はSSLプロトコルの初心者です。私はアプリケーションをサーバーに接続したい。サーバーは私にそのCertificate Fileを取得し、私のCertificate Fileがほしいと思う。 Certificateファイルは自己署名されています。私のアプリケーションはJavaによって開発され、サーバアプリケーションはCによって開発されました。サーバーCertificateOpenSSLによって作成されます。2ペアの公開鍵/秘密鍵付きSSL

私はprivate/publicです。これは自分自身とサーバーcertificateファイルです。

私には何がわかりますか?私はいつかしようとしましたが、結果は得られません。

(私が間違っている用語や文法を使用していた場合申し訳ありませんが、私は英語を勉強しています。)

編集

私は、Webの研究two-way SSL authentication by java誰もがより多くの情報を持っているために、私が研究しなければならないましたか?

+1

つまり、これらの証明書を使用してクライアントとサーバーの接続を保護する方法を知りたいとしますか?それですか? – WhyNotHugo

+0

JSSEリファレンスガイドを読む必要があります。 – EJP

+0

@Hugoはい、そうです。 – MJM

答えて

0

私はあなたを正しく理解しているかどうかはわかりません。クライアントがサーバーに接続できないようです。クライアントトラストストアでサーバー証明書をインポートする必要があります。クライアントはJavaアプリケーションであるため、Java互換のPKCS形式でトラストストアが必要です。 java Keytoolユーティリティを使用してtrustoreを作成する方法については、ヘルプを参照してください。サーバー側がCアプリケーションであるため、サーバー側のC互換トラストストアを作成する必要があります。証明書のPEM表現を、トラストストアとして使用するファイル(cat server.crt> truststore.pem)にコピーするだけで実行できます。あなたの証明書は自己署名されているので、承認機関の証明書(あなたの場合はサーバー証明書自体)をコピーするだけで十分です。クライアントとサーバーがそれぞれのトラストストアを使用するように構成すると、動作するはずです。

+0

PKCS11形式は必要ありません.JKS形式を使用できます。 – EJP

1

クライアントとサーバーの両方にOpenSSL実装を使用する必要があります。 プロトコルは標準的なので、各側の実装を使用できます。

は(Javaで)ここでは、クライアントの例を見てください:あなたはまた読み始めるために何javadocを知るための出発点としてこれを使用できるように http://stilius.net/java/java_ssl.php

標準のJavaクラスは、使用されています! ;)

クライアント側では、openssl(これもlibです)を使用できます。私はCでSSLをドンしたことはないので、私はそこであなたを助けることはできません。

通常、sslsocketは通常のtcpソケットと同じように扱われます。 :)サイドノートとして


は、あなたがあなたのアプリケーションに応じて、代わりに生SSLの、HTTPSを使用してintersetedすることができる(ただ言って、あなたがそれを検討する必要があります)。

関連する問題