Ho generato un certificato autofirmato per la mia app Java utilizzando keytool. Tuttavia, quando vado al sito in un browser, viene sempre visualizzato un avviso: si dice che questo sito non possiede il certificato. C'è un modo per firmare/firmare un certificato in modo da non ricevere questi avvertimenti in un browser? Sia il server che il browser si trovano sullo stesso host e navigo nel sito utilizzando "http://localhost/". Non voglio aggiungere un'eccezione al browser perché ho dei test eseguiti su una grande farm di build, quindi è eccessivo aggiungere un'eccezione a tutti i browser su tutte le macchine di compilazione.Posso creare un certificato autofirmato in Java che verrà automaticamente considerato attendibile dai browser Web?
risposta
È anche possibile impostare un'autorità di certificazione (CA) autofirmata utilizzando OpenSSL o eventualmente lo strumento Java. È quindi possibile utilizzare tale CA per firmare un numero di certificati server.
È ancora necessario affidarsi manualmente alla CA autofirmata su tutti i client che accedono ai server di prova, ma almeno è sufficiente affidarsi a una CA radice, anziché a un gruppo di singoli certificati server autofirmati .
Un'altra opzione è verificare CAcert.
No, non è possibile. Si potrebbe anche chiedere "Come posso fare un certificato falso per hsbc.com?"
Ci sono due modi per ottenere un browser per accettare un certificato:
- Acquistate un certificato per un dominio da un'autorità attendibile (che significa dimostrando a quest'ultima che si possiede quel dominio) e quindi utilizzare tale dominio come il nome dei tuoi server di prova
- Installa il tuo certificato di firma nei browser, così da diventare un'autorità affidabile per quel browser.
Senza toccare i browser, non c'è altro modo per farlo - come potrebbe esserci, se internet deve rimanere sicuro?
+1 per applicare vigorosamente indizio :-) –
@Corehpf - vuoi una risposta fantasiosa o la verità? Non c'è alcun modo per ottenere che i browser accettino certificati autenticati o certificati firmati da un certificato CA non root ... oltre all'installazione o al certificato CA nei browser. –
Il certificato che hai creato per localhost o per test.textbox.com? Se crei un certificato per il FQDN test.textbox.com, è così che devi raggiungere il server per non ottenere quegli errori, a condizione che il certificato sia firmato correttamente. Non è possibile generare un certificato per il FQDN e quindi utilizzare un IP o un alias (localhost) per accedervi senza essere avvertiti che le cose non corrispondono correttamente. O sto fraintendendo il tuo problema?
Nota: ovviamente test.testbox.com è solo un esempio che ho usato per questo. – MattC
Sta eseguendo certificati autofirmati (il che significa che non riconducono a nessuno dei CA noti), quindi per definizione non può averli accettati automaticamente. Per avere un certificato accettato automaticamente da un browser, deve risalire a una CA che il browser conosce. –
Sì, ma l'errore che si lamenta del fatto che il sito non è proprietario del certificato indica che il nome host per cui è stato creato il certificato e qualsiasi cosa stia usando per accedere a quel sito sono due cose diverse. Ha detto che sta usando localhost e sto scommettendo che il certificato è per l'effettivo nome host del server. Ciò causerà la presenza di bandiere rosse nella maggior parte dei browser come un problema di sicurezza. – MattC
Effettuare invece il certificato per "localhost". Deve corrispondere al nome host che hai nell'URL.
Ti verrà comunque dato fastidio poiché il certificato non è attendibile, ma questo è un altro problema.
RichieHindle è corretto. Questo metodo non eliminerà gli avvisi nel browser. – shosti
Buona risposta Brian – sixtyfootersdude