我正在開發一個java項目,我應該在服務器端實現SSL-protokol。那麼,這是我第一次在我的應用程序中使用SSL,所以我讀了很多關於ssl/tls的信息,現在我想用java實現一些東西。我將使用JSSE API實現這個過程:使用java中的現有SSL密鑰/證書對(JSSE API)配置SSLContext
1)客戶端將連接到我
2)我要認證我的公鑰證書。我意味着我將用我的公鑰和RSA算法向客戶端發送一個公共密鑰和相應的證書
3)客戶端加密的密鑰,並將其發送給我
我已經私密鑰和證書保存在我的計算機上的密鑰庫中。所以我很猶豫如何從訪問他們我的Java應用程序。我不知道,哪些步驟要做到接觸它們,因爲這是我第一次處理這種東西
我將使用SSLEngine。所以,我應該使用此代碼首先初始化的的SSLContext:
// First initialize the key and trust material.
KeyStore ksKeys = KeyStore.getInstance("JKS");
ksKeys.load(new FileInputStream("/.../myKey"), passphrase);
KeyStore ksTrust = KeyStore.getInstance("JKS");
ksTrust.load(new FileInputStream("/../myCertificate"), passphrase);
sslContext = SSLContext.getInstance("TLS");
sslContext.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
// We're ready for the engine.
SSLEngine engine = sslContext.createSSLengine(hostname, port);
// Use as client
engine.setUseClientMode(true);
我在crypthography真新,這是我第一次編程這個東西。任何想法?
也有私鑰在哪裏?爲什麼所有這些東西都不在密鑰庫中? – EJP
我知道。我在這個領域非常新。我知道至少通往他們的路。 Shoud我使用InputStream來讀取它們,然後將它們加載到我的密鑰庫? – amitakCs
這是正確的方式嗎? – amitakCs