[all sections]
Settings which can be used in all sections
[all sections] aliveTimeout
- Type
- integer
- Default
- -10
- Range
- MIN_INT..MAX_INT
[all sections] allowLocalMessageCompression
- Type
- bool
- Default
- 0
- Range
- 0|1
[all sections] chainPrefix
- Type
- string
e.g.
root-CA
^
sub-CA1 signed by |
^
sub-CA2 signed by |
^
HOST_CERT signed by |
the certificate chain in the example would be "rootCA;sub-CA1;sub-CA2;HOST_CERT".
If the config file entry chainPrefix is set, the start of the certificate chain of the peer
has to match the given string. [all sections] cipherSuiteList
- Type
- 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
A cipher suite is a set of cyptographic methods.
A comma separated list of all cipher suites to be offered for communication.
The server chooses the first cipher suite of its list which is also offered by the client.
By default TLSv1.3 is enabled using a list of default ciphers (see the default above). By default the following cipher suites are enabled:
TLS_AES_256_GCM_SHA384
TLS_CHACHA20_POLY1305_SHA256
TLS_AES_128_GCM_SHA256
ECDHE-RSA-AES256-GCM-SHA384
ECDHE-RSA-AES128-GCM-SHA256
When listing the cipher suites, the values are separated by comma. Therefore, the default value of the config entry is:
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"
cipherSuiteList = "<cipherSuite0>, <cipherSuite1>,...,<cipherSuiteN>"
To disable either TLSv1.2 or TLSv1.3, change this cipherSuiteList config entry to only contain the specific ciphers, e.g. if no TLSv1.3 cipher is in the list, v1.3 will be disabled, and vice versa.
Use the debug flag "-dbg BCM" to display which ciphers will be used.
The allowed v1.3 ciphers are described on the openSSL web page.
Example
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"
The supported cipher suites can be found in the Security Guidelines on winccoa.com.
[all sections] connectDelay
- Type
- int
- Default
- 20
- Range
- >0
[all sections] connectRetries
- Type
- int
- Default
- 30
- Range
- >0
[all sections] coverageReportFile
- Type
- string
[all sections] ctrlBreakFunctionCall
- Type
- bool
- Default
- Event: 0, all other managers: 1
- Range
- 0|1
[all sections] data
- Type
- string
- Default
- local host name, port 4897
data = "host1[:port1]"
Or (in case of redundancy):
data = "host1[:port1]$host2[:port2]"
For further information on the redundancy feature see chapter Redundancy, basics. Or (in
case of redundant network connections):
data = "host1-1[:port1],host1-2[:port1]"
For further information on redundant network connections in WinCC OA see chapter Redundant
network connections. Or generally:
data = "host1-1[:port1],host1-2[:port1]$host2-1[:port2],host2-2[:port2]"
Instead of specifying the host name you can also use IP addresses, e.g. data =
"192.168.154.26". The use of IP addresses can possibly bring undesirable effects (resolution
of IP - host name when using in scripts). If there are problems with the functionality when
using IP addresses, you have to use the host names!
Note:
This entry replaces the config entries "dataHost" resp. "dataPort" (known from former
versions) which remain for compatibility reasons. [all sections] dataHost
- Type
- string
- Default
- local host name
Redundancy:
The primary and secundary host are separated through '$'. This format of dataHost/eventHost
switches on the redundancy.
Caution:
This entry should not be used anymore. For defining the host names use the "data" entry.
[all sections] dataPort
- Type
- integer
- Default
- 4897
- Range
- 1024 .. 65535 (see RFC 1340 | /etc/services)
Caution:
This entry should not be used anymore. For defining the port numbers use the "data" entry.
[all sections] dbg
- Type
- string
[all sections] dbgOffset
- Type
- integer
- Default
- 1
- Range
- >0
[all sections] DHParamFile
- Type
- string
- Default
- 2048-bit MODP group 14
[all sections] discreteImpulseAlertWithoutWent
- Type
- bool
- Default
- 0
- Range
- 0|1
[all sections] distributed
- Type
- bool
- Default
- 0
- Range
- 0|1
[ctrl_1]
distributed = 0
In this case the Control Manager with the number 1 cannot access DPs of other systems (DP
identification is not transmitted to this manager). [all sections] ECDHCurve
- Type
- string
- Default
- prime256v1
[all sections] event
- Type
- string
- Default
- lokaler Hostname, Port 4998
Caution:
This entry replaces the config entries "eventHost" resp. "eventPort" (known from former
versions) which remain for compatibility reasons. [all sections] eventHost
- Type
- string
- Default
- lokaler Hostname
Redundancy:
Primary and secondary host are separated through '$'. This format of dataHost/eventHost
switches on the redundancy.
Caution:
This entry should not be used anymore. For defining the host names use the entry "event".
[all sections] eventPort
- Type
- int
- Default
- 4998
- Range
- 1024 .. 65535 (siehe RFC 1340 | /etc/services)
Caution:
This entry should not be used anymore. For defining the port numbers use the entry "event".
[all sections] exitDelay
- Type
- uint
- Default
- 0
- Range
- >=0
[all sections] ignoreManager
- Type
- string int
[all sections] ip_allow, ip_deny
- Type
- string
[all sections] kerberosSecurity
- Type
- string
- Default
- none
- Range
- none,auth,int,enc
- "none" is the default and specifies that Kerberos is not used.
- "authenticate" specifies that clients and servers must authenticate themselves. Messages are neither signed nor encrypted.
- "integrity" specifies that clients and servers must authenticate themselves and sign all messages thereafter. If one of the partners fails to verify the signature of a message from the other partner, the connection is aborted.
- "encryption" specifies that clients and servers must authenticate themselves and encrypt all messages thereafter.
[all sections] localAddress
- Type
- string
[all sections] logFile
- Type
- bool
- Default
- 1
- Range
- 0|1
[all sections] logStdErr
- Type
- bool
- Default
- 0
- Range
- 0|1
[all sections] maxDpNamesCount
- Type
- unsigned integer
- Default
- 1.000.000
- Range
- >=0
NOTE: If the result list of a function is bigger than the value of the config entry "maxDpNamesCount", the query is stopped. This applies, e.g. to the following functions:
- dpGetAllAliases()
- dpTypes()
- dpAliases()
- dpNames()
- All Query functions that use a pattern such as FROM '*.**' to filter by in the FROM part of a query.
[all sections] messageCompression
- Type
- string
- Default
- none
- Range
- none, zlib, bzip2, zlib-bzip2
- "none" - no compression
- "zlib" - compression using zlib (gzip, zip); see http://www.zlib.org
- "bzip2" - compression by using the bzip2 algorithm (bzip2 is a freely available, high-quality data compressor; see http://www.bzip.org). "bzip2" compresses better than "zlib" at the cost of higher CPU utilization.
- "zlib-bzip2" - compresses short messages using zlib and bigger messages like Identification using bzip2.
[all sections] messageCompressionThreshold
- Type
- int
- Default
- 0
- Range
- 0 - MAX_INT
[all sections] mxProxy
- Type
- string
- Default
- derived from various settings
- Range
- 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"
- serverHost Name of the host running the server (e.g. WCCILdata) to be communicated with.
- proxyHost Name of the host running the WCCILproxy.
- proxyPort Port that is used by the WCCILproxy (default port: 5678).
- securityModePlease see the description for securityMode.
[all sections] noReverseLookup
- Type
- bool
- Default
- 0
- Range
- 0|1
[all sections] optimisedRefresh
- Type
- Bool
- Default
- 1
- Range
- 0|1
[all sections] osErrorMode
- Type
- int
- Default
- 1
- Range
- 0,1,4,2,32768
- Option 0 - Use the system default, which is to display all error dialog boxes. Option 1 (SEM_FAILCRITICALERRORS) - The system does not display the critical-error-handler message box. Instead, the system sends the error to the calling process. Option 4 (SEM_NOALIGNMENTFAULTEXCEPT) - The system automatically fixes memory alignment faults and makes them invisible to the application. Option 2 (SEM_NOGPFAULTERRORBOX) - The system does not display the Windows Error Reporting dialog. Option 32768 (SEM_NOOPENFILEERRORBOX) - The system does not display a message box when it fails to find a file. Instead, the error is returned to the calling process.
[all sections] refreshDelay
- Type
- int
- Default
- 0
- Range
- >=0
[all sections] reportFile
- Type
- string
[all sections] securityMode
- Type
- string
- Default
- cert
- Range
- plain | cert | winCert | none
- cert SSL/TLS with PEM format certificate files are used for Multiplexing Proxy and the SSL communication between the managers and for the HTTP server between the client and server
- winCert SSL/TLS with certificates stored in Windows Certificate Store are used for Multiplexing Proxy and the SSL communication between the managers and for the HTTP server between the client and server.
- none The communication does not take place via WCCILproxy but directly with the server. This is introduced to support distributed system with different WinCC OA versions where the old versions do not have SSL capabilities.
[all sections] singleSourceConnect
- Type
- integer
- Default
- 0
- Range
- 0|1
[all sections] ssaCertCheck
- Type
- String
- Range
- chainPrefix=%chainPrefix%
[all sections] ssaCertificate
- Type
- string
"[type]:[value]"
- type: can be "file" or "store" describing where the certificate is stored.
- value: dependent on the "type", "value" is either the relative path of the certificate (type == "file") or is split into "loc:store:subject" - loc: Location of the store. "USER" is the current Windows Certificate Store user: CERT_SYSTEM_STORE_CURRENT_USER, "MACHINE" is the Windows Certificate Store account of the local machine: CERT_SYSTEM_STORE_LOCAL_MACHINE - store: is name of certificate store to be used - subject: search criteria to find the certificate by subject/SHA1 property
[all sections] ssaChainFile
- Type
- string
[all sections] ssaCRL
- Type
- string
[all sections] ssaPrivateKey
- Type
- String
"[type]:[value]"
- type: can be "file" or "store" describing where the private key is stored.
- value: dependent on the "type", "value" is either the relative path of the key (type == "file") or is split into "loc:store:subject" - loc: Location of the store. "USER" is the current Windows Certificate Store user: CERT_SYSTEM_STORE_CURRENT_USER, "MACHINE" is the Windows Certificate Store account of the local machine: CERT_SYSTEM_STORE_LOCAL_MACHINE - store: is name of certificate store to be used - subject: search criteria to find the key by subject/SHA1 property
[all sections] sslCertificate
- Type
- 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
This entry is used when the security mode cert is configured. The sslCertificate entry
specifies the absolute path of the 3 files needed for SSL/TLS encrypted communication.
All files have to be PEM encoded.
- <cert-file> X509 certificate of the host
- <private-key>Private Key of the host
- <CAFile> X509 certificate of the trusted CA (Certificate Authority) which signed the certificates of all hosts
[all sections] sslCRLfile
- Type
- string
[all sections] sslVerifyTime
- Type
- Bool
- Default
- 1
- Range
- 0 | 1
[all sections] valueChangeTimeDiff
- Type
- unsigned integer
- Default
- 30 (sec)
- Range
- >=0
Redundancy:
When a manager starts, it determines the time difference between its own computer and the
computer of the server. If the system times differ for more than "valueChangeTimeDiff/2"
seconds, the manager shows an error message. If the system times differ for more than
"valueChangeTimeDiff" seconds, the manager closes the connection and shows an error message.
If the valueChangeTimeDiff entry is set in the [event] section in older projects, the system
shows an error message. The permitted time difference is 30 seconds.
Caution:
If a difference between the system times arises during the operation, the system does not
check the difference. [all sections] winCert
- Type
- 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"
If security mode wincert is configured the config entry winCert determines which
certificate from the Windows Certificate Store is used for SSL/TLS communication.
- <location> Possible values are USER | MACHINE. If the value USER is specified the certificate is searched in CERT_SYSTEM_STORE_CURRENT_USER. If the value MACHINE is specified the certificate is searched in CERT_SYSTEM_STORE_LOCAL_MACHINE.
- <store>The name of the store within location to be used.
- <cert-id> Search criteria to find the certificate. If not specified differently by winCertSearchBy the given string is considered certificates subject name. If subject is not unique within the given location the first certificate valid regarding time is used. If sslVerifyTime = 0 is configured, each certificate is considered valid.
[all sections] winCertSearchBy
- Type
- string
- Default
- SubjectName
- Range
- SubjectName | SHA1
e.g. SHA1 fingerprint given as string of hex digits
"3E 27 B3 87 52 25 70 E6 64 6B C8 FC 06 78 AD 62 CC 89 46 A2"
[all sections] winRootCA
- Type
- 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"
If security mode winCert is configured the config entry winRootCA determines which
certificate from the Windows Certificate Store to be used for certificate verification
during SSL/TLS session negotiation. Please see the description of the SecurityMode entry.
- <location> Possible values are USER | MACHINE. If USER is specified the certificate is searched in CERT_SYSTEM_STORE_CURRENT_USER. If MACHINE is specified the certificate is searched in CERT_SYSTEM_STORE_LOCAL_MACHINE.
- <store>The name of the store within location to be used.
- <cert-id> Search criteria to find the certificate. If not specified differently by winCertSearchBy the given string is considered the certificates subject name. Please see the description of the config entry "winCertSearchBy". If subject is not unique within the given location the first certificate valid regarding time is used. If sslVerifyTime = 0 is configured, each certificate is considered valid.