KeyStoreの作り方

KeyStoreを作ったり、その中にオレオレ証明書を格納する方法を紹介します。
JDKが導入されていれば、KeyStoreを編集するためのkeytoolが入っています。
(Windowsの場合 X:Program FilesJavajdk1.X.X_XXbinkeytool.exe というパスにkeytoolが見つかるはずです。)

詳しい利用方法はSunのkeytoolのページを参照してもらうとして、SSLServerSocketを作るために証明書が1つだけ格納されたキーストアファイルを新規に作ってみます。
以下の例ではキーストアファイル名は”kyunkyun.keystore”です。また、証明書の識別名は”moemoe”です。
どちらも、好みで設定してかまいません。
(さらに…)

投稿者:sato 投稿日時:

SSLServerSocketの作り方

以下のコードで単純にServerSocketFactory#createServerSocket(int, int)を呼び出すと、

ServerSocketFactory tServerSocketFactory = SSLServerSocketFactory.getDefault();
ServerSocket tServerSocket = tServerSocketFactory.createServerSocket(8889, 10);
Socket tSocket = tServerSocket.accept();

証明書が無いという例外が起きます。

Exception in thread "main" javax.net.ssl.SSLException: No available certificate or key corresponds to the SSL cipher suites which are enabled.
  at com.sun.net.ssl.internal.ssl.SSLServerSocketImpl.checkEnabledSuites(Unknown Source)
  at com.sun.net.ssl.internal.ssl.SSLServerSocketImpl.accept(Unknown Source)
  at jp.kurusugawa.research.serversocket.Server.main(Server.java:36)

この例外は、証明書が入っているキーストアを指定していないことが原因で起きています。
(さらに…)

投稿者:sato 投稿日時:

javaでhttps通信

オレオレ証明書を使ってHTTPSをサービスしているサーバに対してコネクションを確立しようとすると以下の例外が発生して接続できない。

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed:
 sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

(さらに…)

投稿者:sato 投稿日時: