In den Konfigurationsdateien von OpenSSL können Sie einen Wert aus einem anderen Abschnitt verwenden $
. Es scheint jedoch, dass diese früh im Prozess (vor der Benutzereingabe) analysiert werden, und daher eine Zeile wie:
[ req_distinguished_name ] emailAddress = Email Address emailAddress_max = 64 .... [usr_cert] # Extensions for client certificates (`man x509v3_config`). subjectAltName = email:$
würde zu einem alternativen Antragstellernamen führen:
X509v3 Subject Alternative Name: email: Email Address
(Voraussetzung Email Address
ist die Aufforderung) und nicht die eingegebene E-Mail-Adresse.
Alternativ können Sie Ihre E-Mail-Adresse als Umgebungsvariable festlegen, bevor Sie OpenSSL ausführen, und Folgendes in Ihrer Konfiguration verwenden:
[usr_cert] # Extensions for client certificates (`man x509v3_config`). subjectAltName = email:$
und Renn:
email_address="johndoe@example.com" openssl req -new -newkey test.key -out test.csr -nodes
Die resultierende Anfrage ( test.csr
) wird Folgendes haben:
X509v3 Subject Alternative Name: email: johndoe@example.com
Dies funktioniert möglicherweise nicht für Sie, abhängig von Ihrer Anwendung natürlich, aber es ist wahrscheinlich das nächste, was Sie bekommen können.
Eine weitere Alternative wäre ein Skript, das eine OpenSSL-Konfiguration mit der korrekten E-Mail-Adresse und anderen bereits konfigurierten Details generiert.