Sto creando un CSR che verrà elaborato dal mio server. È necessario impostare subjectNameAlt in modo che il server possa elaborarlo. Ho cercato in lungo e in largo, e ho trovato solo come farlo con i normali certificati X509, non con X509_REQ. Come posso fare questo (con C e OpenSSL I.e. Ho bisogno dell'equivalente di X509_get_ext_d2i
ma per X509_REQ
)?Come si aggiunge un'estensione subjectNameAlt a X509_REQ?
7
A
risposta
10
programmazione
Date un'occhiata al file di demos/x509/mkreq.c
che viene fornito con OpenSSL. Crea una richiesta e aggiunge un indirizzo email come nome alternativo. Stripped Down esegue le seguenti operazioni:
exts = sk_X509_EXTENSION_new_null();
add_ext(exts, NID_subject_alt_name, "email:[email protected]");
X509_REQ_add_extensions(x, exts);
sk_X509_EXTENSION_pop_free(exts, X509_EXTENSION_free);
Il add_ext
è implementato in questo modo:
int add_ext(STACK_OF(X509_EXTENSION) *sk, int nid, char *value) {
X509_EXTENSION *ex;
ex = X509V3_EXT_conf_nid(NULL, NULL, nid, value);
if (!ex)
return 0;
sk_X509_EXTENSION_push(sk, ex);
return 1;
}
Dalla riga di comando
lascio questa sezione in vigore per gli altri, anche se OP ha chiesto un API.
https://wiki.cacert.org/FAQ/subjectAltName consigliati a copiare il file openssl.cnf
in un file temporaneo openssl-san.cnf
e quindi modificare che in questo modo:
[req]
req_extensions = v3_req
[ v3_req ]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = host1.yourdomain.tld
DNS.2 = host2.yourdomain.tld
Problemi correlati
- 1. Come si aggiunge un progetto a CruiseControl.NET?
- 2. Come si aggiunge UIButton a UIToolBar a livello di programmazione?
- 3. Silenzio quando si aggiunge kAudioUnitSubType_MultiChannelMixer a AUGraph
- 4. Come si aggiunge qualcosa come "? X = 123" a un NSURL?
- 5. Come si aggiunge un'immagine aggiunta come freccia a discesa?
- 6. Java NullPointerException quando si aggiunge a ArrayList?
- 7. Come si aggiunge una classe a un widget Dojo?
- 8. Come si aggiunge una funzione a un elemento tramite jQuery?
- 9. Come si aggiunge il controllo ortografico a un JTextArea?
- 10. Come si aggiunge GPUImage a un progetto iOS?
- 11. Come si aggiunge browserify a un progetto yeoman?
- 12. Come si aggiunge un JToken a un JObject?
- 13. Come si aggiunge testo alternativo a un oggetto?
- 14. Come si aggiunge un elenco a un file in vim?
- 15. Come si aggiunge a una stringa già esistente?
- 16. Come si aggiunge il testo multilinea a un UIButton?
- 17. blender - come si aggiunge un colore a un oggetto?
- 18. Come si aggiunge un nuovo gruppo di fonti a Gradle?
- 19. Come si aggiunge una classe a un marker Leaflet?
- 20. Come si aggiunge una barra di scorrimento a un div?
- 21. Come si aggiunge un commento a un criterio JSON IAM?
- 22. Come si aggiunge un int a una stringa in C++?
- 23. Come si aggiunge una rotta MVC a un controller specifico?
- 24. Come si aggiunge un allegato a un'e-mail tramite System.Net.Mail?
- 25. Come si aggiunge un tipo di documento a un XDocument?
- 26. Come si aggiunge un carattere a una stringa in OCaml?
- 27. come si aggiunge un'immagine a un suggerimento jquery
- 28. Come si aggiunge una stringa a una proprietà in formica?
- 29. Come si aggiunge un metodo personalizzato a un servizio Restangular?
- 30. Come si aggiunge una classe a un @ Html.ActionLink?
io voglio fare questo via c, non attraverso la shell o file system. – chacham15
Fantastico! L'ho cercato per ore! – chacham15
Come possiamo aggiungere un'estensione multivalore come in [alt_names], usando c a livello di programmazione? – karim