[all sections]
Einstellungen die in jeder Sektion verwendet werden können
[all sections] aliveTimeout
- Typ
- integer
- Default
- -10
- Wertebereich
- MIN_INT..MAX_INT
[all sections] allowLocalMessageCompression
- Typ
- bool
- Default
- 0
- Wertebereich
- 0|1
[all sections] chainPrefix
- Typ
- string
Eine Zertifikat "chain" ist die Verkettung der Subject Strings von verketteten Zertifikaten. Wenn die "chain of trust" wie folgt aussieht, z.B.:
root-CA
^
sub-CA1 signed by |
^
sub-CA2 signed by |
^
HOST_CERT signed by |
In diesem Fall ist die Zertifikats-chain "rootCA;sub-CA1;sub-CA2;HOST_CERT".
Wenn der Konfigfile Eintrag chainPrefix konfiguriert ist, muss der Start der Zertifikats chain des Peers mit dem gegebenen String beginnen.
[all sections] cipherSuiteList
- Typ
- string
- Default
- TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256,TLS_AES_128_GCM_SHA256,ECDHE-RSA-AES256-GCM-SHA384,ECDHE-RSA-AES128-GCM-SHA256
Eine Cipher-Suite ist eine standardisierte Sammlung kryptographischer Verfahren.
Eine durch Kommas getrennte Liste aller, für die Kommunikation verwendbaren, Cipher-Suiten.
Der Server wählt die erste Cipher-Suite seiner Liste, die auch in der Liste des Clients zu finden ist.
TLSv1.3 ist standardmäßig aktiviert und verwendet eine Liste von Default-Ciphers (siehe Default oberhalb). Standardmäßig sind folgende Cipher-Suiten aktiviert:
- TLS_AES_256_GCM_SHA384
- TLS_CHACHA20_POLY1305_SHA256
- TLS_AES_128_GCM_SHA256
- ECDHE-RSA-AES256-GCM-SHA384
- ECDHE-RSA-AES128-GCM-SHA256
Beim Auflisten der Cipher-Suiten werden die Werte durch Komma getrennt. Daher ist der Standardwert des Config-Eintrags:
cipherSuiteList = "TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256,TLS_AES_128_GCM_SHA256,ECDHE-RSA-AES256-GCM-SHA384,ECDHE-RSA-AES128-GCM-SHA256"
Die Syntax ist:
cipherSuiteList = "<cipherSuite0>, <cipherSuite1>,...,<cipherSuiteN>"
Um entweder TLSv1.2 oder TLSv1.3 zu deaktivieren, ändern Sie diesen cipherSuiteList-Config-Eintrag, sodass dieser nur die spezifischen Ciphers enthält, z.B. wenn keine TLSv1.3-Cipher in der Liste ist, wird v1.3 deaktiviert und umgekehrt.
Verwenden Sie das Debug-Flag "-dbg BCM", um anzuzeigen welche Ciphers verwendet werden.
Die zulässigen v1.3-Ciphers sind auf der openSSL-Webseite beschrieben.
Beispiel
cipherSuiteList = "TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256,TLS_AES_128_GCM_SHA256,ECDHE-RSA-AES256-GCM-SHA384,ECDHE-RSA-AES128-GCM-SHA256"
Die unterstützten Cipher-Suiten finden Sie in den Security Guidelines auf winccoa.com.
[all sections] connectDelay
- Typ
- int
- Default
- 20
- Wertebereich
- >0
[all sections] connectRetries
- Typ
- int
- Default
- 30
- Wertebereich
- >0
[all sections] coverageReportFile
- Typ
- string
[all sections] ctrlBreakFunctionCall
- Typ
- bool
- Default
- 0
- Wertebereich
- 0|1
[all sections] data
- Typ
- string
- Default
- local host name, port 4897
data = "host1[:port1]"
Oder (bei Redundanz):
data = "host1[:port1]$host2[:port2]"
Weitere Informationen zur Redundanz in WinCC OA finden Sie im Kapitel Grundlagen Redundanz.
Oder (bei redundanten Netzwerkverbindungen):
data = "host1-1[:port1],host1-2[:port1]"
Weitere Informationen zu redundanten Netzwerkverbindungen in WinCC OA finden Sie im Kapitel
Redundante Netzwerkverbindungen. Oder allgemein:
data = "host1-1[:port1],host1-2[:port1]$host2-1[:port2],host2-2[:port2]"
Statt Angabe des Hostnamens können auch IP-Adressen verwendet werden, z.B. data =
"192.168.154.26". Die Verwendung von IP-Adressen kann möglicherweise unerwünschte Effekte
nach sich ziehen (Auflösung IP - Hostname bei Verwendung in Skripts). Sollte es bei
Verwendung von IP-Adressen Schwierigkeiten geben, müssen die Hostnamen herangezogen werden!
Hinweis:
Dieser Eintrag ersetzt die aus früheren Versionen bekannten Config-Einträge "dataHost" bzw.
"dataPort", die aus Kompatibilitätsgründen erhalten bleiben. [all sections] dataHost
- Typ
- string
- Default
- local host name
Redundanz:
Primär und Sekundär-Host sind durch '$' getrennt. Dieses Format von dataHost/eventHost
schaltet die Redundanz ein.
Achtung:
Dieser Eintrag sollte nicht mehr verwendet werden. Für die Definition von Hostnamen
verwenden Sie den Eintrag "data". [all sections] dataPort
- Typ
- integer
- Default
- 4897
- Wertebereich
- 1024 .. 65535 (see RFC 1340 | /etc/services)
Achtung:
Dieser Eintrag sollte nicht mehr verwendet werden. Für die Definition von Portnummern
verwenden Sie den Eintrag "data". [all sections] dbg
- Typ
- string
[all sections] dbgOffset
- Typ
- integer
- Default
- 1
- Wertebereich
- >0
[all sections] DHParamFile
- Typ
- string
- Default
- 2048-bit MODP group 14
[all sections] discreteImpulseAlertWithoutWent
- Typ
- bool
- Default
- 0
- Wertebereich
- 0|1
[all sections] distributed
- Typ
- bool
- Default
- 0
- Wertebereich
- 0|1
[ctrl_1]
distributed = 0
In diesem Fall kann der Control-Manager mit der Nummer 1 nicht auf die DPs anderer Systeme
zugreifen (DP Identification wird nicht an diesen Manager übermittelt). [all sections] ECDHCurve
- Typ
- string
- Default
- prime256v1
[all sections] event
- Typ
- string
- Default
- lokaler Hostname, Port 4998
Achtung:
Dieser Eintrag ersetzt die aus früheren Versionen bekannten Config-Einträge "eventHost"
bzw. "eventPort", die aus Kompatibilitätsgründen erhalten bleiben. [all sections] eventHost
- Typ
- string
- Default
- lokaler Hostname
Redundanz:
Primär und Sekundär-Host sind durch '$' getrennt. Dieses Format von dataHost/eventHost
schaltet die Redundanz ein.
Achtung:
Dieser Eintrag sollte nicht mehr verwendet werden. Für die Definition von Hostnamen
verwenden Sie den Eintrag "event". [all sections] eventPort
- Typ
- int
- Default
- 4998
- Wertebereich
- 1024 .. 65535 (siehe RFC 1340 | /etc/services)
Achtung:
Dieser Eintrag sollte nicht mehr verwendet werden. Für die Definition von Portnummern
verwenden Sie den Eintrag "event". [all sections] exitDelay
- Typ
- uint
- Default
- 0
- Wertebereich
- >=0
[all sections] ignoreManager
- Typ
- string int
[all sections] ip_allow, ip_deny
- Typ
- string
[all sections] kerberosSecurity
- Typ
- string
- Default
- none
- Wertebereich
- none,auth,int,enc
- "none" ist der Defaultwert und gibt an, dass Kerberos nicht verwendet wird.
- "authenticate" gibt an, dass die Clients und Server sich authentifizieren müssen. Nachrichten werden weder signiert noch verschlüsselt.
- "integrity" gibt an, dass sich die Clients und Server authentifizieren müssen und danach alle Nachrichten signieren müssen. Wenn einer von den Partnern bei der Bestätigung der Signatur einer Nachricht von dem anderen Partner scheitert, wird die Verbindung abgebrochen.
- "encryption"> gibt an, dass sich die Clients und Server authentifizieren müssen und danach alle Nachrichten verschlüsseln müssen. Wenn einer von den Partnern bei der Bestätigung der Signatur einer Nachricht von dem anderen Partner scheitert, wird die Verbindung abgebrochen.
[all sections] localAddress
- Typ
- string
[all sections] logFile
- Typ
- bool
- Default
- 1
- Wertebereich
- 0|1
[all sections] logStdErr
- Typ
- bool
- Default
- 0
- Wertebereich
- 0|1
[all sections] maxDpNamesCount
- Typ
- unsigned integer
- Default
- 1.000.000
- Wertebereich
- >=0
HINWEIS: Wenn die Ergebnisliste einer Funktion größer als der Wert des Config-Eintrags "maxDpNamesCount" ist, wird die Abfrage abgebrochen. Dies gilt z.B. für die folgenden Funktionen:
- dpGetAllAliases()
- dpTypes()
- dpAliases()
- dpNames()
- Alle Abfrage(Query)-Funktionen, die im FROM-Teil der Abfrage nach Patterns (Muster) wie z.B. FROM '*.**' filtern.
[all sections] maxLogFileSize
- Typ
- unsigned integer
- Default
- 10
- Wertebereich
- 1-65535
- Einheit
- MegaByte
Gibt die maximale Größe der Datei <proj_dir>/log/PVSS_II.log in MB an (0 = unbegrenzt). Der Eintrag wird von allen Managern (für die jeweils eigenen Log-Dateien) ausgewertet. Der Eintrag kann auch in [general]-Sektion verwendet werden. In diesem Fall gilt der Eintrag für alle Manager.
Hinweis: Wenn der Eintrag sowohl in einer allgemeinen als auch in einer manager-spezifischen Sektion vorkommt, wird der letzte Eintrag verwendet, der von oben im Verlauf der Datei erscheint.
Wird diese Größe überschritten, so wird die Datei in PVSS_II.log.bak umbenannt und eine neue Datei erstellt. Ein bestehendes File PVSS_II.log.bak wird dabei überschrieben. Anschließend wird unter Windows das Skript postLogFileHandler.cmd bzw. unter Linux postLogFileHandler.sh aufgerufen.
Die Größe der Log-Datei wird alle 30 Sekunden (bei Last auch länger) geprüft und kann daher beim Umbruch von der Einstellung deutlich nach oben abweichen (je nach Schreibgeschwindigkeit auf die Log-Datei).
[all sections] messageCompression
- Typ
- string
- Default
- none
- Wertebereich
- none, zlib, bzip2, zlib-bzip2
- "none" - keine Kompression
- "zlib" - komprimiert unter Verwendung von der zlib (gzip, zip); siehe http://www.zlib.org
- "bzip2" - komprimiert unter Verwendung des bzip2-Algorithmus (bzip2 ist ein frei verfügbarer, hoch qualitativer Komprimierungs Algorithmus; siehe http://www.bzip.org). "bzip2" komprimiert besser als "zlib", jedoch mit höherer CPU-Auslastung.
- "zlib-bzip2" - komprimiert kurze Messages mit zlib, große Messages, wie z.B. die Identifikation, mit bzip2.
[all sections] messageCompressionThreshold
- Typ
- int
- Default
- 0
- Wertebereich
- 0 - MAX_INT
[all sections] mxProxy
- Typ
- string
- Default
- derived from various settings
- Wertebereich
- n.a.
Syntax:
mxProxy = "<serverHost> <proxyHost[:proxyPort]> <securityMode>" | "none"
z.B.
mxProxy = "system36 etmFW:5678 cert"
mxProxy = "system314 system314 cert"
mxProxy = "system310 system310 none"
mxProxy = "none"
Dieser Eintrag kann mehrmals auftreten, einmal für jede Connection.
- serverHost - Name des Hosts auf dem der Server (z.B. WCCILdata) läuft mit dem kommuniziert werden soll.
- proxyHost - Name des Hosts auf dem der WCCILproxy läuft
- proxyPort - Port der vom WCCILproxy verwendet wird (Defaultport: 5678)
- securityMode - Detailierte Informationen siehe securityMode
Wenn keine Proxy-Konfiguration verfügbar ist, verbindet sich der Client direkt mit dem Host, der durch den Data-Config-Eintrag angegeben ist, unter der Annahme, dass die Data- und Event-Manager sowie der Proxy-Manager auf diesem Host laufen.
Wenn eine IPv6-Adresse für den "server"- und "mxProxy"-Einträge verwendet wird, müssen [ ] (Eckige Klammern) verwendet werden.
[general]
mxProxy = "[::1] [::1]:5678 cert"
[proxy]
server = "[fe80::2c5c:5415:98f1:82f3]:1234"
Der Eintrag mxProxy="none" deaktiviert den Multiplexing Proxy.
[all sections] noReverseLookup
- Typ
- bool
- Default
- 0
- Wertebereich
- 0|1
[all sections] optimisedRefresh
- Typ
- Bool
- Default
- 1
- Wertebereich
- 0|1
[all sections] osErrorMode
- Typ
- int
- Default
- 1
- Wertebereich
- 0,1,4,2,32768
- Die Option 0 zeigt alle Windows Fehlermeldungsdialogfenster an. Option 1 (SEM_FAILCRITICALERRORS)- das System zeigt die kritischen Fehlermeldungsdialogfenster nicht an. Stattdessen wird die Fehlermeldung an den aufrufenden Prozess gesendet. Option 4 (SEM_NOALIGNMENTFAULTEXCEPT) - das System korrigiert automatisch Speicherausrichtungsfehler und blendet diese aus. Option 2 (SEM_NOGPFAULTERRORBOX) - das System zeigt das Windows Fehlermeldungsdialogfenster nicht an. Option 32768 (SEM_NOOPENFILEERRORBOX) - das System zeigt kein Hinweisfenster, wenn eine Datei nicht gefunden wurde. Stattdessen wird ein Fehler and den aufrufenden Prozess gesendet.
[all sections] outstandingMsgTimeout
- Typ
- int
- Default
- -1
[all sections] refreshDelay
- Typ
- int
- Default
- 0
- Wertebereich
- >=0
[all sections] reportFile
- Typ
- string
[all sections] securityMode
- Typ
- string
- Default
- cert
- Wertebereich
- plain | cert | winCert | none
- cert - SSL/TLS mit PEM Format Zertifikat-Dateien werden für Multiplexing Proxy und SSL Kommunikation zwischen Managern sowie für den HTTP Server zwischen Client und Server verwendet .
- winCert - SSL/TLS mit Zertifikat aus dem Windows Certificate Store werden für Multiplexing Proxy und SSL Kommunikation zwischen Managern sowie für den HTTP Server zwischen Client und Server verwendet.
- none - Die Kommunikation erfolgt nicht via WCCILproxy, sondern unverschlüsselt direkt mit den Servern. Mit dieser Option können Verteilte Systeme Hosts mit älteren WinCC OA Versionen, die noch keinen SSL/TLS Support bieten, aufnehmen.
[all sections] singleSourceConnect
- Typ
- integer
- Default
- 0
- Wertebereich
- 0|1
[all sections] ssaCertCheck
- Typ
- String
- Wertebereich
- chainPrefix=%chainPrefix%
Mit dem Config-Eintrag kann ein ChainPräfix gesetzt werden. Dieses wird für Windows Cert Store-Zertifikate benötigt.
ssaChertCheck = "chainPrefix=rootCA;sub-CA1;sub-CA2;HOST_CERT"
Wenn der Konfigfile Eintrag ssaChertCheck konfiguriert ist, muss der Start der Zertifikatschain mit dem gegebenen String beginnen.
[all sections] ssaCertificate
- Typ
- string
"[Typ]:[Wert]"
- Typ: kann "file" oder "store" sein und beschreibt wo das Zertifikat gespeichert wurde.
-
Wert: Abhängig vom "Typ", ist "Wert" entweder der relative Pfad des Zertifikats (Typ == "file") oder wird aufgeteilt in "loc:store:subject"
-loc: Speicherort vom Store.
"USER" ist der aktuelle Windows Certificate Store-Benutzer: CERT_SYSTEM_STORE_CURRENT_USER,
"MACHINE" ist der Windows Certificate Store Account der lokalen Maschine: CERT_SYSTEM_STORE_LOCAL_MACHINE
-store: Name des Zertifikat-Stores der verwendet wird.
-subject: Suchkriterien, um das Zertifikat über Betreff/SHA1-Eigenschaft zu finden.
[all sections] ssaChainFile
- Typ
- string
ssaChainFile = "[wert]"
Wert ist der Pfad der Certificate Chain-Datei(kann entweder relativ oder absolut sein).
[all sections] ssaCRL
- Typ
- string
[all sections] ssaPrivateKey
- Typ
- String
"[Typ]:[Wert]"
- Typ: kann "file" oder "store" sein und beschreibt wo der Privatschlüssel gespeichert wurde.
-
Wert: Abhängig vom "Typ", ist "Wert" entweder der relative Pfad des Schlüssels (Typ == "file") oder wird aufgeteilt in "loc:store:subject"
- loc: Speicherort vom Store.
"USER" ist der aktuelle Windows Certificate Store-Benutzer: CERT_SYSTEM_STORE_CURRENT_USER,
"MACHINE" ist der Windows Certificate Store Account der lokalen Maschine: CERT_SYSTEM_STORE_LOCAL_MACHINE,
- store: Name des Zertifikat-Stores der verwendet wird.
- subject: Suchkriterien, um den Schlüssel über Betreff/SHA1-Eigenschaft zu finden.
[all sections] sslCertificate
- Typ
- string
- Default
- [path]/host-cert.pem [path]/host-key.pem [path]/root-cert.pem
syntax:
sslCertificate = "<[path]/cert-file> <[path]/private-key> <[path]/CAFile>"
e.g.
D:/certificates/host-cert.pem
Dieser Eintrag wird nur berücksichtigt, wenn der Securitymodus cert konfiguriert ist. Der
sslCertificate-Eintrag gibt den absoluten Pfad der 3 PEM-Dateien an, die für SSL/TLS
verschlüsselte Kommunikation gebraucht werden. Alle Dateien müssen PEM-encoded sein.
- <cert-file> X509 Zertifikat des Hosts
- <private-key>Private Key des Hosts
- <CAFile> X509 Zertifikat der "trusted CA" (Certificate Authority) von der die Zertifikat alle Hosts signiert wurden
[all sections] sslCRLfile
- Typ
- string
[all sections] sslVerifyTime
- Typ
- Bool
- Default
- 1
- Wertebereich
- 0 | 1
[all sections] valueChangeTimeDiff
- Typ
- unsigned integer
- Default
- 30 (sec)
- Wertebereich
- >=0
Redundanz:
Wenn ein Manager startet, ermittelt er die Zeitdifferenz zwischen seinem Rechner und dem
Rechner des Servers. Wenn die Systemzeiten um mehr als "valueChangeTimeDiff/2" Sekunden
unterschiedlich sind, wird eine Fehlermeldung ausgegeben. Wenn die Systemzeiten um mehr als
"valueChangeTimeDiff" Sekunden unterschiedlich sind, beendet er die Verbindung mit einer
Fehlermeldung. Wenn bei älteren Projekten der Eintrag valueChangeTimeDiff im [event]-Sektion
gesetzt ist, wird eine Fehlermeldung angezeigt. Der erlaubte Zeitunterschied sind per
Default 30 Sekunden.
Achtung:
Wenn sich zwischen den Systemzeiten während des Betriebes ein Unterschied ergibt, wird dies
nicht überprüft. [all sections] winCert
- Typ
- string
syntax:
winCert = "<location>:<store>:<cert-id>"
e.g.
winCert = "USER:MY:IOWASystem34"
winCert = "MACHINE:MY:3E 27 B3 87 52 25 70 E6 64 6B C8 FC 06 78 AD 62 CC 89 46 A2"
Wenn der Security Mode winCert configuriert ist gibt der Config Eintrag winCert an, welches
Zertifikat aus dem Windows Certificate Store für SSL/TLS Kommunikation verwendet werden
soll.
- <location> Mögliche Werte sind USER | MACHINE. Wenn der Wert USER angegeben ist wird das Zertifikat im CERT_SYSTEM_STORE_CURRENT_USER gesucht. Wenn der Wert MACHINE angegeben ist wird das Zertifikat im CERT_SYSTEM_STORE_LOCAL_MACHINE gesucht.
- <store>Der Name des Stores in location.
- <cert-id> ID mit der das Zertifikat gesucht wird. Die angegebene ID ist entweder das Subject oder der SHA1 Fingerprint des Zertifikates wenn winCertSearchBy SHA1 konfiguriert ist (Siehe auch die Beschreibung des winCertSearchBy-Eintrages). Wenn es mehrere Zertifikate mit gleichem Subject im Store gibt wird das erste zeitlich gültige Zertifikat verwendet. Wenn sslVerifyTime = 0 konfiguriert ist sind alle Zertifikat zeitlich gültig.
[all sections] winCertSearchBy
- Typ
- string
- Default
- SubjectName
- Wertebereich
- SubjectName | SHA1
z.B. SHA1 fingerprint als Hex-Digit String
"3E 27 B3 87 52 25 70 E6 64 6B C8 FC 06 78 AD 62 CC 89 46 A2"
[all sections] winRootCA
- Typ
- string
syntax:
winRootCA = "<location>:<store>:<cert-id>"
e.g.
winRootCA = "MACHINE:ROOT:IOWARootCA"
winRootCA = "MACHINE:ROOT:58 BA 02 2F 3A 6F 0F 42 27 3E 87 F8 43 3B EB 53 FE B9 E0 AD"
Wenn der Security Mode winCert konfiguriert ist gibt der Config Eintrag winRootCA an,
welches Zertifikat aus dem Windows Certificate Store zur Zertifikatsüberprüfung beim SSL/TLS
Sessionaufbau verwendet werden soll. Siehe auch die Beschreibung des SecurityMode-Eintrages.
- <location> Mögliche Werte sind USER | MACHINE. Wenn USER angegeben ist wird das Zertifikat im CERT_SYSTEM_STORE_CURRENT_USER gesucht. Wenn MACHINE angegeben ist wird das Zertifikat im CERT_SYSTEM_STORE_CURRENT_USER gesucht.
- <store>Der Name des Stores in location.
- <cert-id> ID mit der das Zertifikat gesucht wird. Die angegebene ID ist entweder das Subject oder der SHA1 Fingerprint des Zertifikates wenn winCertSearchBy SHA1 konfiguriert ist. Siehe auch die Beschreibung des winCertSearchBy-Eintrages. Wenn es mehrere Zertifikate mit gleichem Subject im Store gibt wird das erste zeitlich gültige Zertifikat verwendet. Wenn sslVerifyTime = 0 konfiguriert ist, sind alle Zertifikat zeitlich gültig.
