277 messaggi dal 03 ottobre 2006
Se può servire riporto anche il mio elenco di file preso dalla chiavetta Infocert
Ma anche tu Evil80 dovrai poi eseguire la firma tramite codice c# presso un server in hosting ? Perchè se è così il mio provider mi genera l'errore che ho riportato ieri e di cui sto chiedendo chiarimenti quindi il file pfx sarà inutile se poi le loro regole mi impediranno di usarlo.

Aggiungo la procedura che mi ha descritto l'operatore di Infocert al telefono.
Apri il programma Dike6 preventivamente scaricato e installato dal loro sito
Firma un documento a caso e poi vai nelle impostazioni (ingranaggio sulla destra) e poi su cronologia certificati
Clicchi sul file appena firmato e ti apre la finestra di Windows relativa ai certificati installati sulla macchina.
Qui vai sulla scheda Dettagli e poi clicchi su "Copia su file"
ma nella finestra che appare, nonostante appaia la scelta del file pfx è in grigett quindi non selezionabile.
11.886 messaggi dal 09 febbraio 2002
Contributi
Grazie per l'elenco... purtroppo non riesco a identificare chiaramente dove possa essere la chiave privata.

Potete provare a fare due cose:

1. Aprite il file E:\cert.cer con blocco note e vedete cosa c'è all'interno. Sicuramente c'è un "BEGIN CERTIFICATE" ma c'è anche un "BEGIN PRIVATE KEY"? Credo di no ma per scrupolo verificate.

2. Eseguite E:\Browser\FirefoxPortable\FirefoxPortable.exe e poi nella barra degli indirizzi del browser scrivete about:preferences#privacy per accedere alle impostazioni. Scorrete fino in fondo e troverete "Certificati". Cliccate il bottone "Mostra certificati" per far apparire la finestra di gestione dei certificati. Cercate il vostro certificato nalla tab "Persone" o "Certificati personali" e vedete se riuscite a esportarlo con la chiave privata.

ciao,
Moreno

Enjoy learning and just keep making
11.886 messaggi dal 09 febbraio 2002
Contributi
A proposito dell'errore su hosting condiviso:


Server Error in '/' Application.
The specified network password is not correct.
Exception Details: System.Security.Cryptography.CryptographicException: The specified network password is not correct.
Source Error:
[CryptographicException: The specified network password is not correct.
]
System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr) +36


Fa riferimento a una "network password", probabilmente è sbagliato il codice che usi per firmare.
Se il problema fossero state delle limitazioni dell'hosting condiviso avresti avuto una SecurityExcetion.

ciao,
Moreno

Enjoy learning and just keep making
277 messaggi dal 03 ottobre 2006
Grazie Moreno
ma guardando nel web mi sono imbattuto su questo link
https://stackoverflow.com/questions/8286110/asp-net-the-specified-network-password-is-not-correct
dove nella prima risposta che danno hanno provato a spiegare e risolvere con questa istruzione
new X509Certificate2(Path, "", X509KeyStorageFlags.MachineKeySet);

e in effetti nella istruzione che usavo io questo parametro X509KeyStorageFlags.MachineKeySet non lo usavo. Ma anche se lo aggiungo il problema rimane identico.
Tieni presente che sul mio Pc locale lo stesso codice e lo stesso file pfx funzionano bene e dato che ho letto che comunque la libreria tenta di accedere all'elenco dei certificati del computer locale che esiste sempre ma probabilmente in un hosting condiviso non è accessibile... può essere ?
277 messaggi dal 03 ottobre 2006
Allora, nel mio file cert non c'è la sezione begin private key
Seguendo le istruzioni per esportare il certificato da Firefox, quando arrivo a salvare il certificato di infocert, (che però ho trovato dentro la scheda "autorità" perchè in certificati personali o persone è vuoto) mi mostra le seguenti possibili estensioni di file per salvare:

Certificato X509(PEM) (*.crt,*.pem)
Catena di certificati X509(PEM) (*.crt,*.pem)
Certificato X509(DER) (*.der)
Certificato X509(PKCS#7) (*.p7c)
Catena di certificati X509(PKCS#7) (*.p7c)

non c'è il pfx
234 messaggi dal 08 marzo 2012
BrightSoul ha scritto:
Grazie per l'elenco... purtroppo non riesco a identificare chiaramente dove possa essere la chiave privata.

Potete provare a fare due cose:

1. Aprite il file E:\cert.cer con blocco note e vedete cosa c'è all'interno. Sicuramente c'è un "BEGIN CERTIFICATE" ma c'è anche un "BEGIN PRIVATE KEY"? Credo di no ma per scrupolo verificate.

2. Eseguite E:\Browser\FirefoxPortable\FirefoxPortable.exe e poi nella barra degli indirizzi del browser scrivete about:preferences#privacy per accedere alle impostazioni. Scorrete fino in fondo e troverete "Certificati". Cliccate il bottone "Mostra certificati" per far apparire la finestra di gestione dei certificati. Cercate il vostro certificato nalla tab "Persone" o "Certificati personali" e vedete se riuscite a esportarlo con la chiave privata.

ciao,
Moreno


1. E:\cert.cer --> contiene solo la chiave pubblica

2. Ho provato la strada con Firefox e esportandoli trovo tanti formati, la maggior parte dei quali esporta solo la chiave pubblica. Altri come ad esempio "p7c" esportano qualcosa di illeggibile...potrebbe essere questo? Ma come posso usare un p7c in C# per provare a firmare?

Se provo a effettuare il backup del certificato da firefox sul formato PKCS #12 ottengo l'errore "Copia di backup del file PKCS #12 non riuscita per motivi sconosciuti."
Modificato da evil80 il 03 gennaio 2019 14.39 -
11.886 messaggi dal 09 febbraio 2002
Contributi

new X509Certificate2(Path, "", X509KeyStorageFlags.MachineKeySet);

No, usa questo overload che vuole il percorso del pfx e la password.
new X509Certificate2("percorsoFisicoDelPfx", "password");



Ma come posso usare un p7c in C# per provare a firmare?

Con OpenSSL puoi convertire tra i formati.
Il problema è che p7c è un formato che non contiene chiave privata. Prova il PEM e poi aprilo con blocco note per vedere che c'è dentro.

Enjoy learning and just keep making
11.886 messaggi dal 09 febbraio 2002
Contributi
Prima quando ho fornito il comando dir ho dimenticato di aggiungere la flag che elenca anche i file nascosti. Non vorrei che la chiave privata sia su un file nascosto... Il comando avrebbe dovuto essere:
dir /s /b /ah > elenco.txt

In caso vedete se spuntano fuori altri file.

Poi ho finito le soluzioni, qui probabilmente bisogna insistere con l'assistenza di InfoCert.

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.