Penso che tu possa farlo, ma non nel modo in cui stai provando a farlo.
Un certificato SSL è un'istruzione che lega una chiave di crittografia pubblica a una struttura X.500 che include un elemento CN o Common Name; un certificato firmato è uno di quelli in cui l'associazione è verificata in modo verificabile da un'autorità di certificazione di terze parti, utilizzando una chiave pubblica già nota agli utenti finali (quella pila di certificati dell'autorità di certificazione (CA) che risiede all'interno del browser).
Quando si visita un sito Web protetto da SSL con un browser, la CN firmata viene resa nota al browser. Ciò che il browser sceglie di fare con esso dipende dal browser. I browser di cui sono a conoscenza lo confrontano con il nome host richiesto ed errore se è diverso (o se tale associazione certificata non regge all'analisi, ad esempio il certificato di firma non è noto al browser o l'associazione è fuori- aggiornato, ma questo è un problema diverso). Non c'è nulla che, in linea di principio, ti impedisce di ottenere un certificato firmato pubblicamente in cui la CN è un indirizzo IP non un FQDN (nome di dominio completo) [1], ma ciò non farà magicamente confrontare il CN con l'IP indirizzo, anziché con il nome host richiesto .
Ho il sospetto che il modo più semplice per risolvere il tuo problema sia quello di avviare la tua CA, cosa facile da fare, e ci sono molti tutorial pubblici su; uno è qui . Una volta che gli utenti finali hanno importato la tua CA nei loro browser, tutti i certificati che conterai saranno accettati come autorevoli.
Potresti quindi avere un secondo problema in quanto desideri eseguire molti siti NameVirtualHost su un singolo indirizzo IP. Questo è stato storicamente insuperabile, poiché (diversamente da TLS) la negoziazione SSL avviene prima di qualsiasi altra cosa su una connessione; vale a dire, la CN incorporata nel certificato viene resa nota e utilizzata dal client prima che il client sia in grado di dire a quale host stanno cercando di connettersi.
Recentemente, sembra che sia stata introdotta un'estensione del protocollo chiamata SNI (Server Name Indication), che consente a client e server di indicare che vorrebbero fare alcune cose sul nome host prima che il certificato SSL sia presentato, consentendo quello giusto di un set di certificati che devono essere forniti dal server. Apparentemente questo richiede apache 2.2.10, una versione sufficientemente recente di OpenSSL e ( soprattutto ) supporto lato client.
Quindi, se dovessi fare quello che stai cercando di fare, guarderei conio il mio certificato CA, dicendo ai miei utenti finali che devono usare browser che supportano SNI e importare il mio certificato radice CA, e tagliare e firma i miei certificati SSL per ogni sito bugtrack.
[1] OK, potresti non aver trovato nessuno che lo farà, ma questo è un dettaglio di implementazione. Quello che sto cercando di mostrare qui è che anche se lo facessi, non risolverebbe il tuo problema.