Glossary · Security

Application instance certificate

In OPC UA, an application instance certificate is the X.509v3 certificate that identifies one installed instance of a client or server. Its Subject Alternative Name must contain the application's ApplicationUri as a URI: entry plus the endpoint's DNS names or IP addresses, and it is what authenticates the application on every secure channel.

The requirements that are actually checked

X.509 version 3. The SAN must carry the ApplicationUri as a URI: entry, and it must match the ApplicationUri in the ApplicationDescription exactly, character for character - a mismatch is BadCertificateUriInvalid. The SAN must also carry the hostname or IP the client used, or you get BadCertificateHostNameInvalid. KeyUsage must include digitalSignature for signing and dataEncipherment for RSA key transport. Minimum RSA key size is 2048 bits. It is not a TLS certificate and a web-server certificate will not substitute.

Where the key and certificate live

The instance certificate and its private key go in the own store of the PKI directory, alongside the trusted, issuer, rejected and crl stores. On Windows the reference stack keeps application certificates in the X509Store CurrentUser\UA_MachineDefault, visible in certmgr.msc, with the trust stores under %CommonApplicationData%\OPC Foundation\pki - usually the hidden C:\ProgramData. On Linux and macOS the equivalent is under %LocalApplicationData%/OPC Foundation/pki. Knowing which of the two a product uses saves an afternoon.

Self-signed, CA-issued, or provisioned

A self-signed instance certificate works: each peer promotes it into their trusted store and the pair is authenticated. It does not scale, because trust is O(n squared) and there is no revocation path. A CA-issued certificate lets you trust one issuer instead of n peers, at the price of needing the issuer store and CRLs configured. For a fleet, provision through a Global Discovery Server using the pull or push model rather than by hand.

The private key is not required to be in a file

A private key can live in a TPM, a smart card, an HSM or a remote key service and never enter process memory. The reference stack exposes a pluggable CryptoProvider and a PKCS#11 package for hardware tokens. That matters where a compromised edge gateway must not yield a reusable machine identity - and it is worth asking a vendor about, because the answer is usually a flat file with 0644 permissions.

Example

Generating a conformant self-signed instance certificate - the SAN line is the part people get wrong

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -sha256 -days 730 -nodes \
  -subj "/CN=MyUaClient/O=Contoso" \
  -addext "subjectAltName=URI:urn:edge01:Contoso:MyUaClient,DNS:edge01,DNS:edge01.plant.local,IP:10.20.3.11" \
  -addext "keyUsage=nonRepudiation,digitalSignature,keyEncipherment,dataEncipherment" \
  -addext "extendedKeyUsage=clientAuth,serverAuth"

# verify what you actually produced before shipping it:
openssl x509 -in cert.pem -noout -text | grep -A2 "Subject Alternative Name"
#   URI:urn:edge01:Contoso:MyUaClient, DNS:edge01, DNS:edge01.plant.local, IP Address:10.20.3.11
The mistake people make: Running a containerised client or server with the pki directory inside the container rather than on a mounted volume. The application regenerates its instance certificate on every restart, so every peer's trust list goes stale on each deploy and the whole fleet fails with BadCertificateUntrusted after a routine rolling update. Mount pki on persistent storage before you go to production.

Defined in: Part 2 - Security Model; Part 4 - Services for the validation rules; Part 6 - Mappings for the certificate requirements.

Last verified 7 September 2026 against OPC UA 1.05.07. OPC UA Connect is an educational resource and is not affiliated with the OPC Foundation.

Free download
OPC UA Server Acceptance Test Pack
A 40-check acceptance test you run against a vendor's server before commissioning sign-off. Weighted scoring, three hard gates, and a one-page verdict for the supplier meeting.
Get the free test pack →
Free, no course, no login