証明書を使った一般的なスキームがわかりません。例:私はいくつかのウェブサイトにアカウントを持っています。私は持っname
ていpassword
ます。このサイトにログインするにはどうすればよいですか?-フィールドを開い_https://website:443/login
て入力する必要があります。すべて問題がなければ、アドミタンスを取得します。
ここで、java + httpclient(apache)を使用してこれらの手順をプログラムで実行したいと思います。私は書いた:
client = new DefaultHttpClient();
client.getParams().setParameter(ClientPNames.COOKIE_POLICY,
CookiePolicy.BEST_MATCH);
client.setCookieStore(new BasicCookieStore());
client.getCredentialsProvider()
.setCredentials(new AuthScope(ADDRESS, new Integer(PORT)),
new UsernamePasswordCredentials(USERNAME, USERPWD));
そして、サーバーの証明書を使用してtrustStoreを作成する必要があります。
System.setProperty("javax.net.ssl.trustStore", "./KeyStore/myca");
ここで、「myca」は「InstallCert.java」(Sunの製品)で作成されました。
しかし、ブラウザ(FFox、またはOpera)のインポートサーバーの証明書のように、このすべての手順をプログラムで実行したいと思います...ユーザーは、追加のアプリケーションのセットではなく、自分のアプリケーションのみを使用したいと考えています。
どうすれば実行できますか?
そして今、主な問題は、サーバーがユーザーの証明書を必要としないのはなぜですか?また、自分の証明書を使用して認証するにはどうすればよいですか?(ユーザーの証明書を持っている場合、サーバーにログインするために「名前」「パスワード」は必要ありませんか?)