簡體   English   中英

如何使用用戶證書?

[英]How can I use user's certificate?

我無法理解使用證書的一般方案。 例如:我在某個網站上有帳戶。 我有用namepassword 我應該怎么做才能登錄該網站? -我應該打開_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)導入服務器的證書...用戶只想只使用我的應用程序,而不是一組其他應用程序。

我該如何執行呢?

現在,主要的問題是:為什么服務器不需要用戶證書? 以及如何使用自己的證書進行身份驗證? (如果我有用戶證書,是否不需要“名稱”密碼來登錄服務器?)

為什么服務器不需要用戶證書?

服務器不需要用戶證書,因為大多數用戶沒有證書,現在也不需要證書,以及如何獲得證書。 而且即使獲得證書,也很難獲得或昂貴,因此許多用戶將無法獲得證書。

因此,任何需要客戶端證書的服務器都可能將用戶數量減少1000倍。大多數服務器所有者都不希望這樣做。

如果我有用戶證書,是否不需要“名稱”密碼來登錄服務器?

取決於您的要求。 要求證書+用戶名/密碼將被視為兩因素身份驗證,這是一種更強大的保護形式,僅需一個因素。 通過要求某種生物特征識別,它將變得更加強大。

我該如何執行呢?

究竟執行什么? 您正在談論“以編程方式”做事,但是您已經提供了代碼...?

以及如何使用自己的證書進行身份驗證?

這應該在服務器的配置中完成。 您需要設置一個包含受信任方根證書的信任存儲,並要求在ssl配置中進行客戶端認證。 例如, 在這里搜索clientauth。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM