Ich erstelle eine CSR, die von meinem Server verarbeitet wird. Es muss das SubjectNameAlt so festgelegt werden, dass der Server es verarbeiten kann. Ich habe weit und breit gesucht und habe nur gefunden, wie man es mit normalen X509-Certs macht, nicht X509_REQ. Wie kann ich das tun (mit C und OpenSSL. Ie. Ich brauche das Äquivalent von aber für X509_REQ
)?Wie fügen Sie eine SubjectNameAlt-Erweiterung zu X509_REQ hinzu?
7
A
Antwort
10
Programmatically
Werfen Sie einen Blick auf die demos/x509/mkreq.c
-Datei, die mit OpenSSL kommt. Es erstellt eine Anfrage und fügt eine E-Mail-Adresse als alternativen Namen hinzu. Abgespeckte geschieht Folgendes:
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);
Die add_ext
wie dies umgesetzt wird:
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;
}
in der Befehlszeile
ich diesen Abschnitt an Ort und Stelle lassen für andere, obwohl OP eine angeforderte API.
https://wiki.cacert.org/FAQ/subjectAltName berät die openssl.cnf
Datei in einen temporären openssl-san.cnf
Datei zu kopieren und dann das bearbeiten wie folgt aus:
[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
Verwandte Themen
- 1. SharpDevelop, Wie fügen Sie eine DataSource hinzu?
- 2. Wie fügen Sie Optionsfelder zu Menüelementen hinzu?
- 3. Wie fügen Sie eine berechnete Spalte zu einer Tabelle hinzu?
- 4. Wie fügen Sie eine Bildlaufleiste zu einem div hinzu?
- 5. Wie fügen Sie eine eigene Javascript-Datei zu Nanoc hinzu?
- 6. Fügen Sie eine Localdb für Tests hinzu
- 7. Fügen Sie Assoziationen zu vorhandenen Modellen hinzu
- 8. So fügen Sie eine Arraylist hinzu
- 9. Fügen Sie einen Dokumentverweis zu PDF hinzu
- 10. So fügen Sie Cocoapods eine Abhängigkeit hinzu
- 11. So fügen Sie Registerkarten zu JPanels hinzu
- 12. So fügen Sie eine Löschbestätigungsmeldung hinzu
- 13. Fügen Sie Links zu einigen Textwörtern hinzu
- 14. Fügen Sie actionlistener zu jpanel hinzu
- 15. So fügen Sie Tooltip zu jqgrid hinzu
- 16. Fügen Sie # * # glob zu .gitignore hinzu?
- 17. Fügen Sie auth zu Oozie Workflowbenachrichtigung hinzu
- 18. Fügen Sie wordpress shortcode zu header.php hinzu
- 19. Fügen Sie eine angepasste quadratische Kurve hinzu
- 20. Fügen Sie SWF zu Canvas hinzu
- 21. So fügen Sie Daten zu ARRAYLIST hinzu
- 22. So fügen Sie eine Verbindung zu einem NSPredicate hinzu
- 23. Fügen Sie JsonArray zu JsonObject hinzu
- 24. So fügen Sie eine COM-Referenz zu Silverlight-Anwendungen hinzu
- 25. Fügen Sie eine weitere Stimme zu .NET Speech hinzu
- 26. Fügen Sie eine leere Spalte hinzu, um DataFrame zu starten
- 27. MATLAB - fügen Sie eine angepasste Verteilungskurve zu einem Histogramm hinzu
- 28. So fügen Sie eine benutzerdefinierte Bibliothek zu einer Arbeitsdatei hinzu
- 29. C# fügen Sie eine Ebene zu einem Bild hinzu
- 30. So fügen Sie eine Zeile zu EXISTING Datatable hinzu
ich dies über c tun wollen, nicht durch die Schale oder Dateisystem. – chacham15
Super! Ich habe stundenlang danach gesucht! – chacham15
Wie können wir mehrwertige Erweiterungen wie in [alt_names] hinzufügen, indem wir programmgesteuert c verwenden? – karim