1

私はSSLプロトコルの初心者です。アプリケーションをサーバーに接続したい。サーバーは私にそれCertificate Fileを取得し、私のCertificate File. Certificateファイルは自己署名されています。私のアプリケーションは によって開発されJava、サーバー アプリケーションは によって開発されましたCCertificateによって作成されたサーバーOpenSSL

私は private/publicそれが私の自己とサーバーcertificateファイルです。

どうすればいいのかわからない?私はいつか試してみますが、結果は得られません。

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

編集済み

私はウェブで調査し、調査する必要があることを発見しましたtwo-way SSL authentication by java

4

2 に答える 2

1

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

ここでクライアントの例を見てください (Java で): http://stilius.net/java/java_ssl.php

標準の Java クラスが使用されるため、これを出発点として使用して、どの Javadoc を読み始めるかを知ることもできます。;)

クライアント側に関しては、openssl を使用できます (これも lib です)。私は C で SSL を使用したことがないので、その点についてはお手伝いできません。

通常、sslsocket は通常の tcp ソケットと同じように扱います。:)


補足として、アプリケーションによっては、未加工の SSL の代わりに HTTPS を使用することに関心があるかもしれません (単に、検討する必要があるかもしれません)

于 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 に答える