Beruflich Dokumente
Kultur Dokumente
WebServerSSL de
WebServerSSL de
Version: 1.0
Template: templ_tecdoc_de_V1.0.docx
JIRA-ID: CDS-29361 Dateiname: templ_tecdoc_de_V1.0.docx
1 Einleitung
2 Zertifikatsverwaltung
Um innerhalb des WebServers eine https Verbindung zu ermöglichen, muss ein Zertifikat erstellt worden sein
und dieses dem Laufzeitsystem bekannt gemacht werden. Ein solches Zertifikat dient der Sicherstellung, mit
der korrekten Steuerung zu kommunizieren, sowie als Basis für die Verschlüsselung der übertragenen Daten.
Im nachfolgenden Kapitel wird beschrieben, wie diese Bekanntmachung innerhalb der Konfigurationsdatei der
Steuerung erfolgt.
Damit ein Zertifikat vom Browser als sicher bewertet werden kann, muss dieses von einer Zertifizierungsstelle
signiert worden sein. In der Regel hat jeder Browser eine Liste von vertrauenswürdigen Zertifizierungsstellen.
Ein solches Zertifikat kann vom Browser selbst geprüft werden, so dass keine Warnmeldung im Browser
erscheint, wenn eine sichere Verbindung aufgebaut wird. Das Signieren eines Zertifikats von einer dieser
vertrauenswürdigen Zertifizierungsstellen erfolgt üblicherweise nicht kostenlos.
Alternativ ist auch ein selbst erstelltes Zertifikat möglich. Dies hat aber den Nachteil dass dieses Zertifikat im
Browser geprüft werden muss. Es wird ein Warnhinweis vom Browser ausgegeben (siehe Abbildung 2.1) dass
der Verbindung nicht vertraut wird. Es kann dann eine Ausnahme hinzugefügt werden, so dass dieser
Warnhinweis nicht jedes Mal erscheint, wenn diese Verbindung geöffnet wird. Um zu gewährleisten, dass
tatsächlich mit der richtigen Steuerung kommuniziert wird, ist es aber notwendig den Signaturwert des
Zertifikats mit dem Signaturwert des Zertifikats auf der eigenen Steuerung zu vergleichen!
Template: templ_tecdoc_de_V1.0.docx
Verzeichnis ./PKI/ im Arbeitspfad der Steuerung. Über die Einstellung „CertStoreBase“ kann dieser
Pfad geändert werden.
• PKI/cert: Dieser Ordner enthält die Zertifikate welche die Steuerung identifizieren.
• PKI/private: Dieser Ordner enthält die privaten Schlüssel für die Zertifikate im PKI/cert Ordner.
• PKI/crl: Dieser Ordner enthält die Rückruflisten der Zertifikats-Aussteller (CAs)
• PKI/trusted: Dieser Ordner enthält die Zertifikate der vertrauenswürdigen CAs
Für Zertifikate und private Schlüssel sind zwei Formate gebräuchlich. Die Unterscheidung zwischen diesen
Formaten (BASE64 und DER) erfolgt automatisch.
Wichtig: Damit eine SSL Verbindung mit dem Internet Explorer aufgebaut werden kann, ist die Einstellung
WebServer.CipherList=HIGH zu setzen. Siehe Beispiel Konfigurationseinstellungen.
Eine minimale Konfiguration für das Laufzeitsystem könnte wie folgt aussehen:
[ComponentManager]
Component.1=CmpTargetVisuStub
Component.2=CmpCodeMeter
Component.3=CmpWebServer
Component.4=CmpWebServerHandlerV3
Component.5=CmpOpenSSL
[CmpSettings]
FileReference.0=SysFileMap.cfg, SysFileMap
[CmpRouter]
EnableLoopDetection=1
NumRouters=1
[CmpOpenSSL]
WebServer.Cert=server.cer
WebServer.PrivateKey=server.key
WebServer.CipherList=HIGH
Template: templ_tecdoc_de_V1.0.docx
[CmpWebServer]
ConnectionType=3
Auf vielen Linux-Plattformen ist das Toolkit bereits verfügbar. Ansonsten können Sie es über den Package-
Manager nachinstallieren.
Falls OpenSSL nicht in der Path-Umgebungsvariable aufgeführt ist, nehmen Sie den Pfad mit
auf. Im Fall der oben angegebenen Installation C:\OpenSSL-Win32\bin, oder der im Install angegebene Pfad.
Erzeugt wird ein Zertifikat mit 2048bit Schlüssel, SAH256 als Signierung, und einen SHA1 Fingerprint
Legen Sie nun einen Ordner an, in dem der Schlüssel und das Zertifikat abgelegt werden sollen, im Beispiel:
c:\example_cert:
1. Kommandozeile öffnen und in diesen Ordner wechseln
2. Private Schlüssel mit 2048bit Schlüsselbreite für das Zertifikat erzeugen
>>> openssl genrsa -out server.key 2048
3. Signierungsanfrage für diese Schlüssel erzeugen. Die abgefragten Informationen
eingeben. "A challenge password" imd "An optional company name"
können frei gelassen werden
>>> openssl req -new -key server.key -out server.csr
4. Preface vom Schlüssel entfernen. Für Serveranwendungen unbrauchbar.
>>> copy server.key server.key.org
5. Selbstsigniertes Zertifikat erzeugen. Ein Jahr gültig. Tage eventuell entsprechend anpassen
>>> openssl x509 -req -sha256 -days 365 -in server.csr -signkey server.key -out server.crt
6. Fingerprint des Zertifikates kopieren ausdrucken oder abschreiben
>>> openssl x509 -noout -in server.crt -fingerprint
7. Temporäre Dateien wieder löschen
>>> del server.csr
>>> del server.key.org
Nun liegen in diesem Ordner ein server.key und ein server.crt. Dieses Paar umfasst das Zertifikat und den
privaten Schlüssel passend zu diesem Zertifikat.
3 Hinweise
Aktuell gibt es folgende offene Verbesserungsideen, die sowohl die Sicherheit als auch die
Benutzerfreundlichkeit der Webvisualisierung erhöhen:
•
Template: templ_tecdoc_de_V1.0.docx
4 Glossar
Änderungshistorie