[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
The certificate "chain" is a concatenation of the subjects of the daisy chained certificates. If you, for example, use the following certificates, e.g.:
root-CA
^
sub-CA1 signed by |
^
sub-CA2 signed by |
^
HOST_CERT signed by |
In this example the certificate chain 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"
The syntax is:
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
- 0
- 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] maxLogFileSize
- Type
- unsigned integer
- Default
- 10
- Range
- 1-65535
- Unit
- MegaByte
Specifies the maximum size of the file <proj_path>/log/PVSS_II.log in MB (0 = unlimited). All managers evaluate this entry (for their own log files). You can also use the entry in the [general] section. In this case this entry applies to all managers.
Note: If the entry is used both in the general and a manager-specific section, the last entry in the file is used when looking down from the beginning of the file.
If the file exceeds this size, it is renamed to PVSS_II.log.bak and a new file is created. An existing PVSS_II.log.bak file will be overwritten. Under Windows the script postLogFileHandler.cmd resp and under Linux the script postLogFileHandler.sh are called.
The size of the log file is checked every 30 seconds (the size of the file might be, however, higher depending on the system load and the speed the data is written to the log file).
[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"
e.g.
mxProxy = "system36 etmFW:5678 cert"
mxProxy = "system314 system314 cert"
mxProxy = "system310 system310 none"
mxProxy = "none"
This entry can occur multiple times, once for each connection.
- 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).
- securityMode - Please see the description for securityMode.
If no proxy configuration is available, the client will directly connect to the host specified by the data config file entry, assuming that data and event managers as well as the proxy manager run on this host.
If you use an IPv6 address for the "server" and "mxProxy" entries, the [ ] (square brackets) must be used.
[general]
mxProxy = "[::1] [::1]:5678 cert"
[proxy]
server = "[fe80::2c5c:5415:98f1:82f3]:1234"
If the entry mxProxy="none" is used the WCCILproxy will be disabled.
[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] outstandingMsgTimeout
- Type
- int
- Default
- -1
[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%
With this entry you can set the ChainPrefix. This is required when Windows Cert Store certificates are used.
ssaChertCheck = "chainPrefix=rootCA;sub-CA1;sub-CA2;HOST_CERT"
If the config file entry ssaChertCheck is set, the start of the certificate chain has to match the given string.
[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
ssaChainFile = "[value]"
Value is the path of the certificate chain-file (can be either relative or absolute).
[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.
