2015-10-27 34 views
8

Desidero sfruttare l'archivio certificati di Windows nella mia applicazione Java. Sono in grado di caricare un keystore da Windows-MY che ha tutti gli alias/certificati di cui ho bisogno, ma quando lo carico mi trovo di fronte a una finestra di dialogo che chiede "Si prega di inserire una smart card". Se faccio clic su annulla su questo alcune volte, memorizzano ancora i carichi con il giusto contenuto.Come nascondere e utilizzare le finestre di dialogo quando si utilizza l'API Microsoft Crypto (Archivio certificati di Windows)

C'è un modo per sopprimere questa finestra di dialogo? C'è anche un modo per utilizzare la casella di selezione del certificato di Windows da Java? L'unica risposta che ho visto in rete è questa: https://social.msdn.microsoft.com/Forums/en-US/52dca221-1e05-44c1-8c45-9e0d4a807853/java-keystoreload-for-windowsmy-pops-up-insert-smart-card-window?forum=windowssecurity, ma non voglio dover rimuovere nulla perché non mi aspetto che gli utenti lo facciano.

Ecco come sto caricando il chiavi:

KeyStore ks = KeyStore.getInstance("Windows-MY"); 
ks.load(null, null); 

risposta

1

ho mai cercato di caricare il certificase attraverso l'archivio di chiavi, ma li forniti per mezzo di proprietà del sistema.

System.setProperty("javax.net.ssl.keyStoreType", "Windows-MY"); 
System.setProperty("javax.net.ssl.keyStore", "NONE"); 
System.setProperty("javax.net.ssl.trustStoreType", "Windows-ROOT"); 
System.setProperty("javax.net.ssl.trustStore", "NONE"); 

Vedi anche java SSL and cert keystore e How to use the Windows Keystore (MCS) with JDBC?

+0

non riesco a passare attraverso il percorso proprietà di sistema perché sono già impostati. L'applicazione si collega già a un server e ha queste proprietà impostate, ma ho bisogno che l'utente sia in grado di selezionare i certificati da MS Cert Store in modo da poterli racchiudere in un contesto SSL per i servizi HTTP. – Seephor