java如何使用用户证书?
我不能理解使用证书的一般方案。
例如:我在某网站上有一个帐户。我有{_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));
我应该使用服务器的证书创建信任库:
System.setProperty("javax.net.ssl.trustStore", "./KeyStore/myca");
其中“myca”是用“InstallCert”制作的。java'-Sun的产品
但我希望以编程方式执行所有这些步骤,比如浏览器(FFox或Opera)导入服务器的证书。。。用户只想使用我的应用程序,而不是一组附加的应用程序
我该怎么做呢
现在,主要的问题是:为什么服务器不需要用户的证书?我如何使用自己的证书进行身份验证?(如果我有用户证书,我将不需要“名称”“密码”登录到服务器?)
# 1 楼答案
服务器不需要用户证书,因为大多数用户都没有,现在不知道它是什么以及如何获得。即使他们愿意,这样的证书很难获得,或者很昂贵,所以很多用户都不会得到
因此,任何需要客户端证书的服务器都可能会将用户数量减少1000倍。大多数服务器所有者不希望这样
这取决于你的要求。需要证书+用户名/密码将被视为双因素身份验证,这是一种更强大的保护形式,然后只需要一个因素。通过要求某种生物特征识别,它会变得更加强大
具体执行什么?你说的是“以编程方式”做事情,但你已经给出了代码
这应该在服务器的配置中完成。您需要在ssl配置中设置包含信任集根证书+要求客户端身份验证的信任存储。e、 g在here中搜索clientauth