3 回答

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊
使用私有密鑰和公共證書,您需要首先創(chuàng)建一個(gè)PKCS12密鑰庫,然后將其轉(zhuǎn)換為JKS。
# Create PKCS12 keystore from private key and public certificate.
openssl pkcs12 -export -name myservercert -in selfsigned.crt -inkey server.key -out keystore.p12
# Convert PKCS12 keystore into a JKS keystore
keytool -importkeystore -destkeystore mykeystore.jks -srckeystore keystore.p12 -srcstoretype pkcs12 -alias myservercert
要驗(yàn)證JKS的內(nèi)容,可以使用以下命令:
keytool -list -v -keystore mykeystore.jks
如果這不是一個(gè)自簽名證書,則可能要遵循此步驟,導(dǎo)入證書鏈,該證書鏈通向受信任的CA證書。

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超10個(gè)贊
密鑰庫需要密鑰庫文件。該KeyStore級(jí)需要FileInputStream。但是,如果您提供null(而不是FileInputStream實(shí)例),則會(huì)加載一個(gè)空的密鑰庫。創(chuàng)建密鑰庫后,您可以使用驗(yàn)證其完整性keytool。
以下代碼使用空密碼創(chuàng)建一個(gè)空密鑰庫
KeyStore ks2 = KeyStore.getInstance("jks");
ks2.load(null,"".toCharArray());
FileOutputStream out = new FileOutputStream("C:\\mykeytore.keystore");
ks2.store(out, "".toCharArray());
擁有密鑰庫后,導(dǎo)入證書非常容易。在此鏈接中查看示例代碼。

TA貢獻(xiàn)1998條經(jīng)驗(yàn) 獲得超6個(gè)贊
您對(duì)的觀察InpputStream.available()
是正確的,但是我看到的文檔FilterInputStream.available()
說返回了可以從此輸入流讀?。ɑ蛱^)的字節(jié)數(shù)的估計(jì)值,并且沒有警告!在示例(在Blog中)中,DataInputStream.available()
在任何地方都使用&FilterInputStream
擴(kuò)展DataInputStream
。available()
在這種特殊情況下使用不安全嗎?
添加回答
舉報(bào)