0
我想在使用SSL的應用程序中確保通信安全。我正在使用org.apache.commons.ssl和OpenSSL。我已創建的密鑰和CRT這樣的(這些是自現在籤):Java中的SSL套接字
openssl req -new -x509 -nodes -out szrr.crt -keyout szrr.key
openssl rsa -des3 -in szrr.key -out szrr.key.new
del szrr.key
move szrr.key.new szrr.key
所以我現在已經鍵和證書,我用這樣的方式:
KeyMaterial km = new KeyMaterial(certChain, key, password);
SSLServer sslServer = new SSLServer();
sslServer.setKeyMaterial(km);
sslServer.addTrustMaterial(TrustMaterial.TRUST_ALL);
sslServerSocket = (SSLServerSocket) sslServer
.createServerSocket(serverPort);
certChain,關鍵是路徑crt和鍵,密碼只是密碼:)
現在還有什麼我必須做類似的方式來創建SSLClient?
說實話,我看到那個例子,但我不知道是怎麼回事,有這些證書。目前我有一個自簽名的crt和key。我知道我可以生成pem,jks和其他任何我想要的但是沒有更簡單的方法嗎? – BartoszCichecki
如果您的服務器沒有對客戶端進行身份驗證,那麼您在客戶端上所需要的只是信任庫。如果確實如此,那麼你的客戶也需要自己的證書。但是,對於單向驗證,您只需要信任存儲庫即可。只有一個client.addTrustMaterial(新的TrustMaterial(「通往truststore的路徑」,pwd)); – Drona