
Ich bin kein Systemadministrator oder Netzwerkadministrator (ich habe einen Softwareentwickler-Hintergrund). Ich habe einige Schwierigkeiten, diesem Tutorial zu folgen, um Folgendes umzusetzen:SLL-Client-Authentifizierungauf einer Ubuntu 20.04-Version:https://www.makethenmakeinstall.com/2014/05/ssl-client-authentication-step-by-step/
Ich weiß, dass dieses Tutorial ziemlich alt ist, aber es scheint bis auf einen einzigen Punkt gut zu funktionieren.
Im Grunde habe ich alle im vorherigen Tutorial beschriebenen Schritte ausgeführt. Ich fasse sie hier zusammen, damit Sie mir auch eine Rückmeldung geben können, ob ich gut verstanden habe, was ich getan habe:
Generieren Sie ein Zertifikat einer Zertifizierungsstelle (CA):Als Erstes erstelle ich ein CA-Zertifikat. Wenn ich das richtig verstehe, ist das so etwas wie die Erstellung meiner eigenen persönlichen Zertifizierungsstelle (wie cacert.org). Das einzige Problem ist, dass es in diesem Fall keine Institution gibt, die die von dieser Zertifizierungsstelle ausgestellten Zertifikate validiert. Ist das richtig?
openssl req -newkey rsa:4096 -keyform PEM -keyout ca.key -x509 -days 3650 -outform PEM -out ca.cer
Im Grunde fragt mich dieser Befehl nach einemPEM-Passphrasedie ich zur Interaktion mit meiner eigenen CA und einigen Details verwenden werde. Ich habe diese Parameter eingegeben:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:IT
State or Province Name (full name) [Some-State]:.
Locality Name (eg, city) []:.
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Notariato
Organizational Unit Name (eg, section) []:.
Common Name (e.g. server FQDN or YOUR name) []:.*
Email Address []:[email protected]
NOTIZ:in der vorherigen Antwort habe ich ein Platzhalterzeichen (*) für den allgemeinen Namen eingefügt, um zu „ignorieren“, wo die Zertifikate verwendet werden. Kann das funktionieren?
Dieser Befehl erzeugt also eineca.cerDatei, die ich zum Generieren meiner Server und Client-Zertifikate verwenden werde.
Das IchGenerieren Sie meinen Apache-Server-SSL-Schlüssel und mein Zertifikat: dies ist noch nicht das Client-Zertifikat (das Zertifikat, mit dem der Client dem Server sagt: „Ich bin ein zertifizierter Client!!!“), dies ist das Server-Zertifikat, das dem Client sagt: „Ich bin der richtige Server, kein Man-in-the-Middle“. Ist das richtig?
Um dieses Serer-Zertifikat zu erstellen, generiere ich zuerst den ServerPrivat Schlüssel:
openssl genrsa -out server.key 4096
Dann habe ich diesen privaten Serverschlüssel verwendet, um eine Anforderung zur Zertifikatsgenerierung zu generieren.
openssl req -new -key server.key -out server.req -sha256
Auch hier werden mir einige Parameter abgefragt:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:IT
State or Province Name (full name) [Some-State]:.
Locality Name (eg, city) []:.
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Notariato
Organizational Unit Name (eg, section) []:.
Common Name (e.g. server FQDN or YOUR name) []:*
Email Address []:[email protected]
NOTIZ:auch hier habe ich ein Platzhalterzeichen (*) für den allgemeinen Namen eingefügt, um zu „ignorieren“, wo die Zertifikate verwendet werden. Kann das funktionieren?
Dann habe ich die Anforderung zur Zertifikatsgenerierung und das CA-Zertifikat verwendet, um das Serverzertifikat zu generieren:
openssl x509 -req -in server.req -CA ca.cer -CAkey ca.key -set_serial 100 -extensions server -days 1460 -outform PEM -out server.cer -sha256
Dann versuche ich, das Zertifikat in meinem Apache zu installieren, indem ich:
Kopieren Sie das CA-Zertifikat an einen dauerhaften Ort. Wir müssen unser CA-Zertifikat in Apache angeben, da es sich um eine selbst generierte CA handelt und nicht um eine, die in allen Betriebssystemen enthalten ist:
cp ca.cer /etc/ssl/certs/
Kopieren Sie das Serverzertifikat und den privaten Schlüssel an einen dauerhaften Ort:
cp server.cer /etc/ssl/certs/server.crt cp server.key /etc/ssl/private/server.key
Aktivieren Sie das SSL-Modul in Apache:
a2enmod ssl
Aktivieren Sie die SSL-Site in Apache und deaktivieren Sie die HTTP-Site:
a2ensite Standard-SSL a2dissite Standard
Und jetzt habe ich ein Problem mit dem letzten Befehl, wenn ich die Ausgabe der letzten beiden Befehle befolge:
andrea@ubuntu:~/cert$ a2ensite default-ssl
Site default-ssl already enabled
andrea@ubuntu:~/cert$ a2dissite default
ERROR: Site default does not exist!
Wie Sie sehen können, wenn ich auftretea2dissite-StandardIch erhalte diesFEHLER: Site-Standard existiert nicht!Fehlermeldung.
Warum? Was bedeutet das? Was ist falsch? Wie kann ich versuchen, diesen Fehler zu beheben?