Wie übergebe ich Argumente wie "Ländername" an OpenSSL, wenn ich ein selbstsigniertes Zertifikat erstelle?

14

Mit diesem Befehl kann ich ein selbstsigniertes Zertifikat erstellen

openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout server.key -out server.crt

Aber ist es möglich, Argumente wie "Ländername", "Name des Bundesstaates oder der Provinz" usw. an OpenSSL zu übergeben, um diesen Prozess zu automatisieren?

Alexander Zeitler
quelle
Sie müssen die Hostnamen weiterhin über eine CONF-Datei übergeben. Andernfalls lehnen Browser das Zertifikat ab, auch wenn es sich im richtigen Vertrauensspeicher befindet. Dies liegt daran, dass für die CA / Browser-Basisanforderungen die Hostnamen im alternativen Betreffnamen erforderlich sind. Sie können sie nur über die CONF-Datei hinzufügen. Siehe auch So erstellen Sie ein selbstsigniertes Zertifikat mit openssl? bei Stapelüberlauf.
JWW

Antworten:

17

Diese Website erklärt sehr gut, wie das geht:

Die Magie der CSR-Generierung, ohne zur Eingabe von Werten aufgefordert zu werden, die in das Betrefffeld des Zertifikats eingehen, liegt in der -subjOption.

-subj arg
  Replaces subject field of input request with specified data and outputs modified request.
    The arg must be formatted as /type0=value0/type1=value1/type2=...,
    characters may be escaped by \ (backslash), no spaces are skipped.

Zum Beispiel:

openssl ... -subj "/C=GB/ST=London/L=London/O=Global Security/OU=IT Department/CN=example.com"

Weitere Details finden Sie auf der Seite, die ich oben verlinkt habe.

Janos
quelle
Der angegebene Link verweist auf eine nicht vorhandene Seite. Ähnliche Informationen finden Sie unter shellhacks.com/…
Jari Turkia