How to set up Prosys OPC-UA integration with HiveMQ Edge
This document is based on original content created by Miguel Arregui here.
HiveMQ Edge supports multiple machine-to-machine communication protocols, including OPC-UA. This guide provides a technical walkthrough establishing a secure, bidirectional communication channel between HiveMQ Edge and Prosys OPC-UA using Mutual TLS for robust authentication.
🔒 Certificate Architecture
Before we dive into the implementation steps, first let's review the role each certificate plays and where they are placed. We generate one HiveMQ Edge client certificate that serves two security purposes in the Prosys server:
Critical Understanding:
Locations #2 and #3 contain the same certificate (exported from #1)
They're in two different folders because OPC UA separates:
Application authentication (PKI) - "Is this a trusted application?"
User authentication (USERS_PKI) - "Is this a trusted user?".
One Certificate We Generate:
HiveMQ Edge Client Certificate
Generated with:
keytool -genkeypairStored as:
conf/certs/client-keystore.p12Contains: Private key + Public certificate
Purpose: HiveMQ Edge's identity for both secure channel and user authentication
Two Certificates We Import (From Prosys):
Prosys Server CA Certificate
Source:
~/.prosysopc/.../PKI/CA/private/SimulationServerCA.derImported into: HiveMQ Edge's
conf/certs/truststore.jksPurpose: Trust Prosys's Certificate Authority
Prosys Server Certificate
Source:
~/.prosysopc/.../PKI/CA/private/SimulationServer@mac_2048.derImported into: HiveMQ Edge’s
conf/certs/truststore.jksPurpose: Trust Prosys's server identity
Where Our Client Certificate Goes:
Application Trust (Secure Channel)
Location:
~/.prosysopc/.../PKI/CA/certs/[fingerprint].derPurpose: Prosys trusts HiveMQ Edge for TLS secure channel
Process: Moved from
PKI/CA/rejected/after first connection
User Trust (User Authentication)
Location:
~/.prosysopc/.../USERS_PKI/CA/certs/[fingerprint].derPurpose: Prosys trusts HiveMQ Edge as an authenticated user
Process: Moved from
USERS_PKI/CA/rejected/after enabling X.509 auth
For ease of explanation, the following mTLS configuration example uses self-signed certificates for the HiveMQ Edge and Prosys OPC-UA server. Self-signed certificates are often used in internal networks or test environments. We do not recommend the use of self-signed certificates in production. For production installations, use certificates that are signed by a trusted certificate authority (CA).
📋 Prerequisites
Latest version of HiveMQ Edge installed
Java keytool (comes with JDK)
OpenSSL
Instructions
Steps:
Visit the Prosys official download page:
You will first need to fill out a web form with your details and submit it
Next, you will receive a download link via email
Once the package is downloaded, run the installer and follow the on-screen instructions
Launch the Prosys OPC UA Simulation Server and allow it to initialize default settings
Under the Status tab, you will be presented with an endpoint URL which serves as the connection point for integrating HiveMQ with Prosys