Erstellen von benutzerdefinierten Zertifikaten
SSL-Zertifikate
Es gibt zwei Arten von Zertifikaten: solche, die von einer "Zertifizierungsstelle" (CA) unterzeichnet sind, und "selbstsignierte" Zertifikate. Eine Zertifizierungsstelle ist eine vertrauenswürdige Quelle für ein SSL-Zertifikat, und die Verwendung eines Zertifikats von einer Zertifizierungsstelle ermöglicht es Ihren Benutzern, der Identität Ihrer Website zu vertrauen. In den meisten Fällen werden Sie in einer Produktionsumgebung ein von einer Zertifizierungsstelle signiertes Zertifikat verwenden wollen. Für Testzwecke ist jedoch ein selbst signiertes Zertifikat völlig ausreichend.
Um ein selbstsigniertes Zertifikat zu erzeugen, führen Sie den folgenden Befehl in einer openSSL-Shell aus:
openSSL> req -newkey rsa:2048 -nodes -keyout vimacc_SSL.key -x509 -days 730 -out vimacc_SSL_selfsigned_cert.pem -config C:\Projects\vimacc\third-party\openssl\Windows\x64\debug\ssl\openssl.cnf
Sie werden nun eine Reihe von Fragen beantworten (ausführlichere Anleitungen hierzu finden Sie z. B. unter digitalocean.com oder ssl-trust.com) die zum Beispiel so aussehen könnten:
# Country Name (2 letter code) [AU]: DE
# State or Province Name (full name) [Some-State]: Niedersachsen
# Locality Name (eg, city) []: Hannover
# Organization Name (eg, company) [Internet Widgits Pty Ltd]: Accellence Technologies GmbH
# Organizational Unit Name (eg, section) []: vimacc VMS
# Common Name (eg, YOUR name) []: SSL vimacc (better no accellence domain name here!)
# Email Address []: info@accellence.de
Damit sollten Sie zwei Dateien haben, vimacc_SSL_selfsigned_cert.pem (das Zertifikat) und vimacc_SSL.key (der private Schlüssel). Dies ist alles, was Sie für eine SSL-Verbindung benötigen.
Arbeiten mit signierten Zertifikaten
Ein anderer Ansatz besteht darin, nur mit signierten Zertifikaten zu arbeiten:
- Der Client muss eine CSR (Certificate signing request) mit den Angaben des Servers (z.B. Adresse, Port, andere Daten) erstellen.
- Der Administrator des Client-Systems muss diese CSR an den Administrator des Server-Systems senden.
- Auf dem serverseitigen System wird die CSR signiert und das signierte Zertifikat muss an den Adminministrator der Clientseite zurückgeschickt werden.
- Während der Verbindung sendet der Client ebenfalls ein Zertifikat an den Server, und aufgrund des Signiervorgangs kann der Server den Client ebenfalls identifizieren.
Dies führt dazu, dass nur bekannte Clients eine Verbindung herstellen können.
openssl x509 -in certificate.pem -text