Während openssl x509Anwendungen -extfileder Befehl Sie verwenden, openssl reqbenötigt, um -configdie Konfigurationsdatei angeben.
Sie können also einen Befehl wie den folgenden verwenden:
openssl req -x509 -config cert_config -extensions 'my server exts' -nodes \
-days 365 -newkey rsa:4096 -keyout myserver.key -out myserver.crt
Die üblichen Eingabeaufforderungen für die definierten Namensbits sind in der Standardkonfigurationsdatei (wahrscheinlich /System/Library/OpenSSL/openssl.cnfunter OS X) definiert. Diese Datei wird jedoch bei der Verwendung nicht verarbeitet -config, sodass Ihre Konfigurationsdatei auch einige DN-Bits enthalten muss. Daher cert_configkönnte das oben genannte ungefähr so aussehen:
[ req ]
prompt = no
distinguished_name = my dn
[ my dn ]
# The bare minimum is probably a commonName
commonName = secure.example.com
countryName = XX
localityName = Fun Land
organizationName = MyCo LLC LTD INC (d.b.a. OurCo)
organizationalUnitName = SSL Dept.
stateOrProvinceName = YY
emailAddress = ssl-admin@example.com
name = John Doe
surname = Doe
givenName = John
initials = JXD
dnQualifier = some
[ my server exts ]
extendedKeyUsage = 1.3.6.1.5.5.7.3.1
# 1.3.6.1.5.5.7.3.1 can also be spelled serverAuth:
# extendedKeyUsage = serverAuth
# see x509v3_config for other extensions
Wie im Kommentar angegeben, können Sie wahrscheinlich die meisten DN-Felder weglassen. Für die Verwendung von HTTPS benötigen Sie meines Erachtens lediglich einen CN, der Ihrem Hostnamen entspricht.
Der Abschnitt Distinguished Name and Attribute Section Format von Req (1) zeigt, wie Sie die obige Konfiguration ändern können, um nach Werten zu fragen (und Standardwerte anzugeben), wenn Sie mehrere ähnliche Zertifikate / Anforderungen generieren möchten.
Wenn Sie andere Zertifikatserweiterungen benötigen, überprüfen Sie
x509v3_config (5),
welche anderen Bits Sie in Erweiterungsabschnitten angeben können.