Ieri al lavoro ho avuto la necessità di realizzare uno script per controllare la presenza di un certificato SSL nello store dell’utente e – se non presente – di importarlo automaticamente…
CAPICOM
CAPICOM è un controllo ActiveX che espone, tramite Microsoft COM, un insieme di funzioni presenti nelle CryptoAPI di Windows.
In VBScript, possiamo quindi utilizzare CreateObject per avere una istanza dell’oggetto store:
Set store = CreateObject("CAPICOM.Store") |
Con il metodo open possiamo aprire un particolare store.
Gli stores disponibili sono definiti da costanti:
Const CAPICOM_MEMORY_STORE = 0 Const CAPICOM_LOCAL_MACHINE_STORE = 1 Const CAPICOM_CURRENT_USER_STORE = 2 Const CAPICOM_ACTIVE_DIRECTORY_USER_STORE = 3 Const CAPICOM_SMART_CARD_USER_STORE = 4 |
così come le modalità di apertura:
Const CAPICOM_STORE_OPEN_READ_ONLY = 0 Const CAPICOM_STORE_OPEN_READ_WRITE = 1 Const CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED = 2 Const CAPICOM_STORE_OPEN_EXISTING_ONLY = 128 Const CAPICOM_STORE_OPEN_INCLUDE_ARCHIVED = 256 |
Apriamo ad esempio lo store personale (“My“) in sola lettura:
store.Open CAPICOM_CURRENT_USER_STORE, "My", CAPICOM_STORE_OPEN_READ_ONLY |
Possiamo ora ottenere i certificati presenti e, per ognuno, stampare il SubjectName a video:
For Each cert In store.CERTIFICATES WScript.Echo cert.SubjectName Next |
o utilizzare i vari metodi dell’oggetto store per importare, esportare, cancellare i certificati…