This is an automated email from the ASF dual-hosted git repository.
git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/plc4x-website.git
The following commit(s) were added to refs/heads/asf-site by this push:
new 98ef283ed Site checkin for project PLC4X: Jenkins Tools
98ef283ed is described below
commit 98ef283edf0be3376c8b1640bed85d77b503dc8d
Author: jenkins <[email protected]>
AuthorDate: Tue Oct 29 17:06:07 2024 +0000
Site checkin for project PLC4X: Jenkins Tools
---
images/tutorials/opcua/kse/kse_1.png | Bin 0 -> 104020 bytes
images/tutorials/opcua/kse/kse_10.png | Bin 0 -> 101798 bytes
images/tutorials/opcua/kse/kse_11.png | Bin 0 -> 65616 bytes
images/tutorials/opcua/kse/kse_12.png | Bin 0 -> 74875 bytes
images/tutorials/opcua/kse/kse_13.png | Bin 0 -> 46795 bytes
images/tutorials/opcua/kse/kse_14.png | Bin 0 -> 55550 bytes
images/tutorials/opcua/kse/kse_15.png | Bin 0 -> 53324 bytes
images/tutorials/opcua/kse/kse_16.png | Bin 0 -> 63127 bytes
images/tutorials/opcua/kse/kse_17.png | Bin 0 -> 63896 bytes
images/tutorials/opcua/kse/kse_18.png | Bin 0 -> 87807 bytes
images/tutorials/opcua/kse/kse_2.png | Bin 0 -> 84280 bytes
images/tutorials/opcua/kse/kse_3.png | Bin 0 -> 64693 bytes
images/tutorials/opcua/kse/kse_4.png | Bin 0 -> 61429 bytes
images/tutorials/opcua/kse/kse_5.png | Bin 0 -> 73798 bytes
images/tutorials/opcua/kse/kse_6.png | Bin 0 -> 63886 bytes
images/tutorials/opcua/kse/kse_7.png | Bin 0 -> 79680 bytes
images/tutorials/opcua/kse/kse_8.png | Bin 0 -> 83372 bytes
images/tutorials/opcua/kse/kse_9.png | Bin 0 -> 89339 bytes
.../opcua/kse/kse_self_signed_ca_certificate.gif | Bin 0 -> 968840 bytes
sitemap.html | 4 +-
users/adopters.html | 3 +
users/blogs-videos-and-slides.html | 3 +
users/commercial-support.html | 3 +
users/download.html | 3 +
users/getting-started/general-concepts.html | 3 +
users/getting-started/index.html | 3 +
.../opcua-client-certificate.html} | 261 ++++++++++++---------
users/getting-started/plc4c.html | 3 +
users/getting-started/plc4cs.html | 3 +
users/getting-started/plc4go.html | 3 +
users/getting-started/plc4j.html | 3 +
users/getting-started/plc4py.html | 3 +
users/getting-started/using-snapshots.html | 3 +
users/getting-started/virtual-modbus.html | 3 +
users/index.html | 3 +
users/industry40.html | 3 +
users/integrations/apache-calcite.html | 3 +
users/integrations/apache-camel.html | 3 +
users/integrations/apache-edgent.html | 3 +
users/integrations/apache-iotdb.html | 3 +
users/integrations/apache-kafka.html | 3 +
users/integrations/apache-nifi.html | 3 +
users/integrations/apache-streampipes.html | 3 +
users/integrations/eclipse-ditto.html | 3 +
users/integrations/eclipse-milo.html | 3 +
users/integrations/index.html | 3 +
users/issues.html | 3 +
users/preparing-issues.html | 3 +
users/protocols/ab-eth.html | 3 +
users/protocols/ads.html | 3 +
users/protocols/bacnet.html | 3 +
users/protocols/c-bus.html | 3 +
users/protocols/can.html | 3 +
users/protocols/canopen.html | 3 +
users/protocols/ctrlx.html | 3 +
users/protocols/deltav.html | 3 +
users/protocols/df1.html | 3 +
users/protocols/eip.html | 3 +
users/protocols/firmata.html | 3 +
users/protocols/genericcan.html | 3 +
users/protocols/iec-60870.html | 3 +
users/protocols/index.html | 3 +
users/protocols/knxnetip.html | 3 +
users/protocols/logix.html | 3 +
users/protocols/modbus.html | 3 +
users/protocols/opcua.html | 3 +
users/protocols/open-protocol.html | 3 +
users/protocols/plc4x.html | 3 +
users/protocols/profinet.html | 3 +
users/protocols/s7.html | 3 +
users/protocols/simulated.html | 3 +
users/protocols/umas.html | 3 +
users/security.html | 3 +
users/tools/capture-replay.html | 3 +
users/tools/connection-cache.html | 3 +
users/tools/connection-pool.html | 3 +
users/tools/index.html | 3 +
users/tools/opm.html | 3 +
users/tools/scraper.html | 3 +
users/tools/testing.html | 3 +
users/transports/can.html | 3 +
users/transports/index.html | 3 +
users/transports/pcap-replay.html | 3 +
users/transports/raw-socket.html | 3 +
users/transports/serial.html | 3 +
users/transports/socketcan.html | 3 +
users/transports/tcp.html | 3 +
users/transports/udp.html | 3 +
88 files changed, 352 insertions(+), 114 deletions(-)
diff --git a/images/tutorials/opcua/kse/kse_1.png
b/images/tutorials/opcua/kse/kse_1.png
new file mode 100644
index 000000000..758553612
Binary files /dev/null and b/images/tutorials/opcua/kse/kse_1.png differ
diff --git a/images/tutorials/opcua/kse/kse_10.png
b/images/tutorials/opcua/kse/kse_10.png
new file mode 100644
index 000000000..1c8139524
Binary files /dev/null and b/images/tutorials/opcua/kse/kse_10.png differ
diff --git a/images/tutorials/opcua/kse/kse_11.png
b/images/tutorials/opcua/kse/kse_11.png
new file mode 100644
index 000000000..d3293091d
Binary files /dev/null and b/images/tutorials/opcua/kse/kse_11.png differ
diff --git a/images/tutorials/opcua/kse/kse_12.png
b/images/tutorials/opcua/kse/kse_12.png
new file mode 100644
index 000000000..57fcaf62e
Binary files /dev/null and b/images/tutorials/opcua/kse/kse_12.png differ
diff --git a/images/tutorials/opcua/kse/kse_13.png
b/images/tutorials/opcua/kse/kse_13.png
new file mode 100644
index 000000000..203d8418d
Binary files /dev/null and b/images/tutorials/opcua/kse/kse_13.png differ
diff --git a/images/tutorials/opcua/kse/kse_14.png
b/images/tutorials/opcua/kse/kse_14.png
new file mode 100644
index 000000000..8e664ff1f
Binary files /dev/null and b/images/tutorials/opcua/kse/kse_14.png differ
diff --git a/images/tutorials/opcua/kse/kse_15.png
b/images/tutorials/opcua/kse/kse_15.png
new file mode 100644
index 000000000..bba47e167
Binary files /dev/null and b/images/tutorials/opcua/kse/kse_15.png differ
diff --git a/images/tutorials/opcua/kse/kse_16.png
b/images/tutorials/opcua/kse/kse_16.png
new file mode 100644
index 000000000..875e67e47
Binary files /dev/null and b/images/tutorials/opcua/kse/kse_16.png differ
diff --git a/images/tutorials/opcua/kse/kse_17.png
b/images/tutorials/opcua/kse/kse_17.png
new file mode 100644
index 000000000..e75d53c15
Binary files /dev/null and b/images/tutorials/opcua/kse/kse_17.png differ
diff --git a/images/tutorials/opcua/kse/kse_18.png
b/images/tutorials/opcua/kse/kse_18.png
new file mode 100644
index 000000000..9161af650
Binary files /dev/null and b/images/tutorials/opcua/kse/kse_18.png differ
diff --git a/images/tutorials/opcua/kse/kse_2.png
b/images/tutorials/opcua/kse/kse_2.png
new file mode 100644
index 000000000..9a09aeaa9
Binary files /dev/null and b/images/tutorials/opcua/kse/kse_2.png differ
diff --git a/images/tutorials/opcua/kse/kse_3.png
b/images/tutorials/opcua/kse/kse_3.png
new file mode 100644
index 000000000..0c3be499d
Binary files /dev/null and b/images/tutorials/opcua/kse/kse_3.png differ
diff --git a/images/tutorials/opcua/kse/kse_4.png
b/images/tutorials/opcua/kse/kse_4.png
new file mode 100644
index 000000000..ba5db5fa1
Binary files /dev/null and b/images/tutorials/opcua/kse/kse_4.png differ
diff --git a/images/tutorials/opcua/kse/kse_5.png
b/images/tutorials/opcua/kse/kse_5.png
new file mode 100644
index 000000000..9ca2a411e
Binary files /dev/null and b/images/tutorials/opcua/kse/kse_5.png differ
diff --git a/images/tutorials/opcua/kse/kse_6.png
b/images/tutorials/opcua/kse/kse_6.png
new file mode 100644
index 000000000..aa1910f5d
Binary files /dev/null and b/images/tutorials/opcua/kse/kse_6.png differ
diff --git a/images/tutorials/opcua/kse/kse_7.png
b/images/tutorials/opcua/kse/kse_7.png
new file mode 100644
index 000000000..f375f3b69
Binary files /dev/null and b/images/tutorials/opcua/kse/kse_7.png differ
diff --git a/images/tutorials/opcua/kse/kse_8.png
b/images/tutorials/opcua/kse/kse_8.png
new file mode 100644
index 000000000..919c693c6
Binary files /dev/null and b/images/tutorials/opcua/kse/kse_8.png differ
diff --git a/images/tutorials/opcua/kse/kse_9.png
b/images/tutorials/opcua/kse/kse_9.png
new file mode 100644
index 000000000..d1be26bae
Binary files /dev/null and b/images/tutorials/opcua/kse/kse_9.png differ
diff --git a/images/tutorials/opcua/kse/kse_self_signed_ca_certificate.gif
b/images/tutorials/opcua/kse/kse_self_signed_ca_certificate.gif
new file mode 100644
index 000000000..84cfdfa7d
Binary files /dev/null and
b/images/tutorials/opcua/kse/kse_self_signed_ca_certificate.gif differ
diff --git a/sitemap.html b/sitemap.html
index 531422660..9956cd31b 100644
--- a/sitemap.html
+++ b/sitemap.html
@@ -160,7 +160,9 @@
<li><a href="users/getting-started/general-concepts.html">General
Concepts</a></li>
-<li><a href="users/getting-started/virtual-modbus.html">Virtual
Modbus</a></li></ul></li>
+<li><a href="users/getting-started/virtual-modbus.html">Virtual Modbus</a></li>
+
+<li><a href="users/getting-started/opcua-client-certificate.html">OPC UA
Client Certificate</a></li></ul></li>
<li><a href="users/blogs-videos-and-slides.html">Blogs, Videos and
Slides</a></li>
diff --git a/users/adopters.html b/users/adopters.html
index 61404cc81..1e51728be 100644
--- a/users/adopters.html
+++ b/users/adopters.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/blogs-videos-and-slides.html
b/users/blogs-videos-and-slides.html
index 4c1127f41..e727d6f34 100644
--- a/users/blogs-videos-and-slides.html
+++ b/users/blogs-videos-and-slides.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/commercial-support.html b/users/commercial-support.html
index 0e7d39695..1952a6220 100644
--- a/users/commercial-support.html
+++ b/users/commercial-support.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/download.html b/users/download.html
index 2caa0488f..a10421c68 100644
--- a/users/download.html
+++ b/users/download.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/getting-started/general-concepts.html
b/users/getting-started/general-concepts.html
index 730838c24..ecff97f9d 100644
--- a/users/getting-started/general-concepts.html
+++ b/users/getting-started/general-concepts.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/getting-started/index.html b/users/getting-started/index.html
index f1bb3e9a2..ffcbacb5d 100644
--- a/users/getting-started/index.html
+++ b/users/getting-started/index.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/integrations/eclipse-milo.html
b/users/getting-started/opcua-client-certificate.html
similarity index 75%
copy from users/integrations/eclipse-milo.html
copy to users/getting-started/opcua-client-certificate.html
index 45dc8b8d6..e53c1e4bf 100644
--- a/users/integrations/eclipse-milo.html
+++ b/users/getting-started/opcua-client-certificate.html
@@ -6,7 +6,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=UTF-8"/>
- <title>PLC4X – [Untitled]</title>
+ <title>PLC4X – OPC UA : Client certificate creation</title>
<script src="../../js/jquery.slim.min.js" type="text/javascript"></script>
<!--script src="../../js/popper.min.js" type="javascript"></script-->
<script src="../../js/bootstrap.bundle.min.js"
type="text/javascript"></script>
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <strong class="nav-link">OPC UA Client
Certificate</strong>
</li>
</ul>
</li>
@@ -247,7 +250,7 @@
<a
href="../../users/integrations/eclipse-ditto.html" class="nav-link">Eclipse
Ditto</a>
</li>
<li class="nav-item">
- <strong class="nav-link">Eclipse Milo OPC UA
Server</strong>
+ <a
href="../../users/integrations/eclipse-milo.html" class="nav-link">Eclipse Milo
OPC UA Server</a>
</li>
</ul>
</li>
@@ -325,178 +328,210 @@
</div>
</nav>
<main role="main"
class="ml-sm-auto px-4 col-sm-pull col-md-9 col-lg-10 h-100">
- <div class="sect1">
-<h2 id="introduction">Introduction</h2>
+ <h1>OPC UA : Client certificate creation</h1>
+<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
-<p>The PLC4X OPC UA server integration is based around the Eclipse Milo OPC UA
server. It uses PLC4X to communicate with
-industrial devices effectively acting as a industrial OPC UA gateway.</p>
+<p>Below tutorial will teach you how to create client certificate for use
within production environments.
+This tutorial focuses on preparation of configuration.
+It does not dive in X.509 and PKI details nor specifics of any OPC-UA
server.</p>
+</div>
+<div class="paragraph">
+<p>The Apache PLC4X client, as many other UA clients is able to create ad-hoc
certificate for communication.
+While it softens entry bearer for many, it creates also a gap when with
secured environments, which control certificate chains.</p>
+</div>
+<div class="paragraph">
+<p>There are several ways on how to organize certificates.
+In this little tutorial we will use open source tool called <a
href="https://github.com/kaikramer/keystore-explorer">KeyStore Explorer</a>,
referred herein as KSE.
+This tool allows to create files which can be used as a cryptographic keystore
for Java-based programs but not only.
+One of nice things which Java runtime introduced, was change of default
keystore format from JKS (Java KeyStore) to <a
href="https://en.wikipedia.org/wiki/PKCS_12">PKCS#12</a>.</p>
</div>
</div>
</div>
<div class="sect1">
-<h2 id="building_the_server">Building the server</h2>
+<h2 id="creating_self_signed_certificate_using_kse">Creating self-signed
certificate using KSE</h2>
<div class="sectionbody">
<div class="paragraph">
-<p>The OPC UA server can be built using maven as part of the PLC4X build.</p>
+<p>Install the tool using the way which is valid for your operating system,
then open the tool.</p>
</div>
-<div class="listingblock">
+<div class="paragraph">
+<p>Entire process can be observed in below short screen capture:</p>
+</div>
+<div class="imageblock">
<div class="content">
-<pre class="prettyprint highlight"><code>mvn install</code></pre>
+<img src="../../images/tutorials/opcua/kse/kse_self_signed_ca_certificate.gif"
alt="Creation of self-signed certificate authority using KeyStore Explorer"/>
</div>
</div>
<div class="paragraph">
-<p>This creates a target directory within
plc4x/plc4j/integrations/opcua-server containing a jar file which is the main
java
-executable.</p>
+<p>Step by step operations are.</p>
</div>
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p>Navigate to <span class="menuseq"><b class="menu">File</b> <i
class="fa fa-angle-right caret"></i> <b class="menuitem">New</b></span> or
press <span class="keyseq"><kbd>CTRL</kbd>+<kbd>N</kbd></span> to create new
keystore.</p>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tutorials/opcua/kse/kse_1.png" alt="Create new
keystore"/>
</div>
</div>
-<div class="sect1">
-<h2 id="configuration_file">Configuration File</h2>
-<div class="sectionbody">
-<div class="paragraph">
-<p>The config.yml file is used to configure the server. The following root
level settings should be configured.</p>
-</div>
-<div class="ulist">
-<ul>
+</li>
<li>
-<p><strong>version:</strong> The version is just an internal check to confirm
that the right version of the configuration file
-is being used.</p>
+<p>Pick PKCS#12 as desired store format.</p>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tutorials/opcua/kse/kse_2.png" alt="Use PKCS#12
format"/>
+</div>
+</div>
</li>
<li>
-<p><strong>dir:</strong> This is the directory to the security directory. This
is where all configuration is stored including certificates.
-Be sure to secure this directory with the correct permissions.</p>
+<p>Navigate to <span class="menuseq"><b class="menu">Tools</b> <i
class="fa fa-angle-right caret"></i> <b class="menuitem">Generate key
pair</b></span> or press <span
class="keyseq"><kbd>CTRL</kbd>+<kbd>G</kbd></span>:</p>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tutorials/opcua/kse/kse_3.png" alt="Create new key
pair"/>
+</div>
+</div>
</li>
<li>
-<p><strong>name:</strong> This is the name of the OPC UA server. It can be
anything but shouldn’t contain spaces.</p>
+<p>Decide on key type (RSA, DSA, EC) and its size. RSA is a fairly common,
confirm key size and click <b class="button">OK</b></p>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tutorials/opcua/kse/kse_4.png" alt="Pick key type and
size"/>
+</div>
+</div>
</li>
<li>
-<p><strong>disableInsecureEndpoint:</strong> This is used to disable the
remote insecure OPC UA endpoint.</p>
+<p>KSE will ask you about certificate details</p>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tutorials/opcua/kse/kse_5.png" alt="Certificate
settings"/>
+</div>
+</div>
</li>
<li>
-<p><strong>tcpPort:</strong> this can be used to change the opc.tcp port.</p>
+<p>Go to <code>Name</code> field and click little phone book icon and click it.
+You will be able to specify common name (CN), organization unit (OU) and other
fields, and confirm with <b class="button">OK</b></p>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tutorials/opcua/kse/kse_6.png" alt="Certificate name
details"/>
+</div>
+</div>
</li>
<li>
-<p><strong>httpPort:</strong> this can be used to change the http.tcp port.</p>
+<p>Click <b class="button">Add Extensions</b>, which is located below
<code>Name</code> field (you will again see step 5 window), it will open next
popup.</p>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tutorials/opcua/kse/kse_7.png" alt="Add extension
popup"/>
+</div>
+</div>
</li>
<li>
-<p><strong>devices:</strong> is a list of PLC’s or devices that the
server should communicate with. Each device should include a
-name:, connectionString:, and a list of tags:.</p>
+<p>Click <b class="button">Use Standard Template</b>, select CA, then click <b
class="button">OK</b>.</p>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tutorials/opcua/kse/kse_8.png" alt="Use CA template"/>
+</div>
+</div>
</li>
-</ul>
+<li>
+<p>This will fill extensions with few rows, but do not close this window
yet.</p>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tutorials/opcua/kse/kse_9.png" alt="CA certificate
extensions details"/>
</div>
-<div class="paragraph">
-<p>For each device within devices the following settings should be
configured.</p>
</div>
-<div class="ulist">
-<ul>
+</li>
<li>
-<p><strong>name:</strong> This is the name of the device. It can anything as
long as it doesn’t contain spaces.</p>
+<p>Click <b class="button">+</b> next to the list, and select <code>Subject
Alternative Name</code>, then click <b class="button">OK</b>.</p>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tutorials/opcua/kse/kse_10.png" alt="Add subject name"/>
+</div>
+</div>
</li>
<li>
-<p><strong>connectionString:</strong> Can be any valid PLC4X connection
string.</p>
+<p>You will see again window with list, click <b class="button">+</b> next to
it.</p>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tutorials/opcua/kse/kse_11.png" alt="Subject
alternative names list"/>
+</div>
+</div>
</li>
-</ul>
+<li>
+<p>Select <code>URI</code>, and type client identifier in <code>General Name
Value</code> field (i.e. <code>urn:my:plc:client</code>), and confirm via <b
class="button">OK</b>.</p>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tutorials/opcua/kse/kse_12.png" alt="Add subject
alternative name"/>
</div>
-<div class="paragraph">
-<p>For each tag with tags the following settings should be configured:-</p>
</div>
-<div class="ulist">
-<ul>
+</li>
<li>
-<p><strong>alias:</strong> This is the name of tag it can be anything but
shouldn’t have spaces. This will be shown as the tag name within
-the OPC UA server tree. Be sure that this is unique within the configuration
file.</p>
+<p>Click <b class="button">OK</b> to close certificate extensions prompt.</p>
</li>
<li>
-<p><strong>address:</strong> This is any valid PLC4X address that matches the
connection type.</p>
+<p>Click <b class="button">OK</b> to finish certificate creation.</p>
</li>
-</ul>
+<li>
+<p>Enter key pair alias and confirm with <b class="button">OK</b>.</p>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tutorials/opcua/kse/kse_13.png" alt="Specify key pair
alias"/>
</div>
-<div class="paragraph">
-<p>An example configuration file is shown below.</p>
</div>
-<div class="listingblock">
+</li>
+<li>
+<p>Enter private key password, confirm it in second field and click <b
class="button">OK</b>.</p>
+<div class="imageblock">
<div class="content">
-<pre class="prettyprint highlight"><code>---
-version: "0.8"
-dir: {path-to-security-dir}
-name: "Plc4xOPCUAServer"
-disableInsecureEndpoint: true
-devices:
- - name: "ModbusDevice"
- connectionString: "modbus-tcp://127.0.0.1:502"
- tags:
- - alias: "TemporaryBOOLARRAY"
- address: "000001:BOOL[10]"
- - alias: "TemporaryWORD2"
- address: "400002:WORD"
- - alias: "TemporaryUINT3"
- address: "400003:UINT"
- - alias: "TemporaryINT4"
- address: "400004:INT"
- - alias: "TemporaryDINT5"
- address: "400005:DINT[4]"
- - alias: "TemporaryREAL6"
- address: "400006:REAL"
- - alias: "TemporaryREAL7"
- address: "400007:REAL"
- - alias: "TemporaryREAL8"
- address: "400008:REAL"
-- name: "SimulationDevice"
- connectionString: "simulated://127.0.0.1"
- tags:
- - alias: "Temporary"
- address: "RANDOM/Temporary:Integer"
-tcpPort: 12687
-httpPort: 8445</code></pre>
-</div>
+<img src="../../images/tutorials/opcua/kse/kse_14.png" alt="Specify private
key password"/>
</div>
</div>
+</li>
+<li>
+<p>Upon completion of these steps you should be presented with "Key Pair
Generation Successful" message.</p>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tutorials/opcua/kse/kse_15.png" alt="Completion of key
generation"/>
</div>
-<div class="sect1">
-<h2 id="running">Running</h2>
-<div class="sectionbody">
-<div class="paragraph">
-<p>To run the java executable execute:-</p>
</div>
-<div class="listingblock">
+</li>
+<li>
+<p>Navigate to <span class="menuseq"><b class="menu">File</b> <i
class="fa fa-angle-right caret"></i> <b class="menuitem">Save</b></span> or
press <span class="keyseq"><kbd>CTRL</kbd>+<kbd>S</kbd></span> to save
keystore.</p>
+<div class="imageblock">
<div class="content">
-<pre class="prettyprint highlight"><code>java -jar
plc4x-opcua-server-0.8.0-uber-jar.jar -c {path-to-config-file} -i</code></pre>
+<img src="../../images/tutorials/opcua/kse/kse_16.png" alt="Save keystore"/>
</div>
</div>
-<div class="paragraph">
-<p>This will start the OPC UA server with the interactive switch (-i). This
prompts the server to ask for usernames and
-passwords upon startup. However, during normal operation the -i switch should
be left out.</p>
-</div>
-<div class="paragraph">
-<p>If a certificate isn’t available at
<strong>{path-to-security-dir}/security/plc4x-opcuaserver.pfx</strong> then a
self signed is
-created. This certificate is password protected with the security password
given during startup.</p>
+</li>
+<li>
+<p>Enter keystore password, for use within Java <strong>it must be same as
private key password</strong>.</p>
+<div class="imageblock">
+<div class="content">
+<img src="../../images/tutorials/opcua/kse/kse_17.png" alt="Save keystore"/>
</div>
-<div class="paragraph">
-<p>If you place another certificate here make sure it is password protected
and set the password by running the server
-again with --set-password switch.</p>
</div>
-<div class="listingblock">
+</li>
+<li>
+<p>Specify file location.</p>
+<div class="imageblock">
<div class="content">
-<pre class="prettyprint highlight"><code>java -jar
plc4x-opcua-server-0.8.0-uber-jar.jar -c {path-to-config-file} -i
-s</code></pre>
-</div>
+<img src="../../images/tutorials/opcua/kse/kse_17.png" alt="Save keystore"/>
</div>
-<div class="paragraph">
-<p>Once the OPC UA server is running you are able to connect to it from your
favorite OPC UA client using the connection
-string.</p>
</div>
-<div class="listingblock">
-<div class="content">
-<pre class="prettyprint
highlight"><code>opc.tcp://{ip.address}:12687/plc4x</code></pre>
+</li>
+<li>
+<p>Close KSE, your client private key and certificate is ready for use.</p>
+</li>
+</ol>
</div>
</div>
-<div class="paragraph">
-<p>Replacing the {ip.address} with the servers IP address.</p>
</div>
+<div class="sect1">
+<h2 id="usage_within_opc_ua_plc4x_client">Usage within OPC UA PLC4X client</h2>
+<div class="sectionbody">
<div class="paragraph">
-<p>If you want to use an encrypted connection be sure to move the client
certificate created in
-<strong>{path-to-security-dir}/security/pki/rejected</strong> to the trusted
directory. Otherwise the client will receive a security error
-when trying to connect.</p>
+<p>For detailed use of options used to configure client please refer to
documentation of Apache PLC4X OPC-UA driver.
+Please remember that keystore must be readable by your program.
+In case if you are not certain what is working directory of your program,
specify full path to keystore.</p>
</div>
</div>
</div>
diff --git a/users/getting-started/plc4c.html b/users/getting-started/plc4c.html
index 3d8f8df58..ef98b27f4 100644
--- a/users/getting-started/plc4c.html
+++ b/users/getting-started/plc4c.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/getting-started/plc4cs.html
b/users/getting-started/plc4cs.html
index 8ba309e62..c9891c8c5 100644
--- a/users/getting-started/plc4cs.html
+++ b/users/getting-started/plc4cs.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/getting-started/plc4go.html
b/users/getting-started/plc4go.html
index 58137ea83..0ab64d3d5 100644
--- a/users/getting-started/plc4go.html
+++ b/users/getting-started/plc4go.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/getting-started/plc4j.html b/users/getting-started/plc4j.html
index 3630af974..2fb97ff63 100644
--- a/users/getting-started/plc4j.html
+++ b/users/getting-started/plc4j.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/getting-started/plc4py.html
b/users/getting-started/plc4py.html
index 9bb249b5d..c36e95d4b 100644
--- a/users/getting-started/plc4py.html
+++ b/users/getting-started/plc4py.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/getting-started/using-snapshots.html
b/users/getting-started/using-snapshots.html
index 6a57cbde6..6a1d4c7a9 100644
--- a/users/getting-started/using-snapshots.html
+++ b/users/getting-started/using-snapshots.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/getting-started/virtual-modbus.html
b/users/getting-started/virtual-modbus.html
index fdf4927b4..41647d6b3 100644
--- a/users/getting-started/virtual-modbus.html
+++ b/users/getting-started/virtual-modbus.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<strong class="nav-link">Virtual Modbus</strong>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/index.html b/users/index.html
index 756090bc0..ef18dfe1f 100644
--- a/users/index.html
+++ b/users/index.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/industry40.html b/users/industry40.html
index 33d385af2..76a9f11c1 100644
--- a/users/industry40.html
+++ b/users/industry40.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/integrations/apache-calcite.html
b/users/integrations/apache-calcite.html
index 282cee152..ada257f0c 100644
--- a/users/integrations/apache-calcite.html
+++ b/users/integrations/apache-calcite.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/integrations/apache-camel.html
b/users/integrations/apache-camel.html
index c09756819..6e5b8b761 100644
--- a/users/integrations/apache-camel.html
+++ b/users/integrations/apache-camel.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/integrations/apache-edgent.html
b/users/integrations/apache-edgent.html
index 16da21cae..c583fe98d 100644
--- a/users/integrations/apache-edgent.html
+++ b/users/integrations/apache-edgent.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/integrations/apache-iotdb.html
b/users/integrations/apache-iotdb.html
index b05c7db5c..53c219385 100644
--- a/users/integrations/apache-iotdb.html
+++ b/users/integrations/apache-iotdb.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/integrations/apache-kafka.html
b/users/integrations/apache-kafka.html
index 2ead8234a..44c569047 100644
--- a/users/integrations/apache-kafka.html
+++ b/users/integrations/apache-kafka.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/integrations/apache-nifi.html
b/users/integrations/apache-nifi.html
index 76a962801..3810ce0dc 100644
--- a/users/integrations/apache-nifi.html
+++ b/users/integrations/apache-nifi.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/integrations/apache-streampipes.html
b/users/integrations/apache-streampipes.html
index 839727dc8..7b93abde3 100644
--- a/users/integrations/apache-streampipes.html
+++ b/users/integrations/apache-streampipes.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/integrations/eclipse-ditto.html
b/users/integrations/eclipse-ditto.html
index e7f77ce78..fb3d36e8b 100644
--- a/users/integrations/eclipse-ditto.html
+++ b/users/integrations/eclipse-ditto.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/integrations/eclipse-milo.html
b/users/integrations/eclipse-milo.html
index 45dc8b8d6..e7119a776 100644
--- a/users/integrations/eclipse-milo.html
+++ b/users/integrations/eclipse-milo.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/integrations/index.html b/users/integrations/index.html
index 1485e584f..f94814491 100644
--- a/users/integrations/index.html
+++ b/users/integrations/index.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/issues.html b/users/issues.html
index 61c5c56b2..b6374fdc9 100644
--- a/users/issues.html
+++ b/users/issues.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/preparing-issues.html b/users/preparing-issues.html
index 1872a1aae..b347ed4d2 100644
--- a/users/preparing-issues.html
+++ b/users/preparing-issues.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/protocols/ab-eth.html b/users/protocols/ab-eth.html
index 90a2da337..e50a2dc9d 100644
--- a/users/protocols/ab-eth.html
+++ b/users/protocols/ab-eth.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/protocols/ads.html b/users/protocols/ads.html
index 104c3e889..ac53bba41 100644
--- a/users/protocols/ads.html
+++ b/users/protocols/ads.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/protocols/bacnet.html b/users/protocols/bacnet.html
index e73aa9761..2a9d9881e 100644
--- a/users/protocols/bacnet.html
+++ b/users/protocols/bacnet.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/protocols/c-bus.html b/users/protocols/c-bus.html
index 680b73e76..ebd2efd71 100644
--- a/users/protocols/c-bus.html
+++ b/users/protocols/c-bus.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/protocols/can.html b/users/protocols/can.html
index bdda244a0..85405e2ed 100644
--- a/users/protocols/can.html
+++ b/users/protocols/can.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/protocols/canopen.html b/users/protocols/canopen.html
index 7bf3ad6b8..0fb23e4b2 100644
--- a/users/protocols/canopen.html
+++ b/users/protocols/canopen.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/protocols/ctrlx.html b/users/protocols/ctrlx.html
index 72cf12b91..e4c453d14 100644
--- a/users/protocols/ctrlx.html
+++ b/users/protocols/ctrlx.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/protocols/deltav.html b/users/protocols/deltav.html
index 8d8ee73a2..9ad12b1dd 100644
--- a/users/protocols/deltav.html
+++ b/users/protocols/deltav.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/protocols/df1.html b/users/protocols/df1.html
index 6c2cee37b..a1a393a9b 100644
--- a/users/protocols/df1.html
+++ b/users/protocols/df1.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/protocols/eip.html b/users/protocols/eip.html
index 67cd6c106..ed6c4c557 100644
--- a/users/protocols/eip.html
+++ b/users/protocols/eip.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/protocols/firmata.html b/users/protocols/firmata.html
index dbe5b27ce..0907f07fc 100644
--- a/users/protocols/firmata.html
+++ b/users/protocols/firmata.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/protocols/genericcan.html b/users/protocols/genericcan.html
index 2d21d436f..09f04bf0a 100644
--- a/users/protocols/genericcan.html
+++ b/users/protocols/genericcan.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/protocols/iec-60870.html b/users/protocols/iec-60870.html
index e7ada7d2d..adabd3dc9 100644
--- a/users/protocols/iec-60870.html
+++ b/users/protocols/iec-60870.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/protocols/index.html b/users/protocols/index.html
index dadc3e9d0..96f4c899a 100644
--- a/users/protocols/index.html
+++ b/users/protocols/index.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/protocols/knxnetip.html b/users/protocols/knxnetip.html
index dc5a3dc4b..66db83966 100644
--- a/users/protocols/knxnetip.html
+++ b/users/protocols/knxnetip.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/protocols/logix.html b/users/protocols/logix.html
index 8d6e17450..b7b4c2318 100644
--- a/users/protocols/logix.html
+++ b/users/protocols/logix.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/protocols/modbus.html b/users/protocols/modbus.html
index 5b52b1636..741f387f5 100644
--- a/users/protocols/modbus.html
+++ b/users/protocols/modbus.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/protocols/opcua.html b/users/protocols/opcua.html
index a3d7d2647..372712510 100644
--- a/users/protocols/opcua.html
+++ b/users/protocols/opcua.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/protocols/open-protocol.html
b/users/protocols/open-protocol.html
index e90373625..5e17ce603 100644
--- a/users/protocols/open-protocol.html
+++ b/users/protocols/open-protocol.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/protocols/plc4x.html b/users/protocols/plc4x.html
index 15618187e..f012c3531 100644
--- a/users/protocols/plc4x.html
+++ b/users/protocols/plc4x.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/protocols/profinet.html b/users/protocols/profinet.html
index 9916d3a3f..dbc5dcc4f 100644
--- a/users/protocols/profinet.html
+++ b/users/protocols/profinet.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/protocols/s7.html b/users/protocols/s7.html
index ee61be765..5b18e1e4e 100644
--- a/users/protocols/s7.html
+++ b/users/protocols/s7.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/protocols/simulated.html b/users/protocols/simulated.html
index f31fcb8b6..2ff16d14c 100644
--- a/users/protocols/simulated.html
+++ b/users/protocols/simulated.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/protocols/umas.html b/users/protocols/umas.html
index c22854070..8805ae52f 100644
--- a/users/protocols/umas.html
+++ b/users/protocols/umas.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/security.html b/users/security.html
index 8e70fe5d4..0ef6a3350 100644
--- a/users/security.html
+++ b/users/security.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/tools/capture-replay.html b/users/tools/capture-replay.html
index 3faf4e80a..f413b73a2 100644
--- a/users/tools/capture-replay.html
+++ b/users/tools/capture-replay.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/tools/connection-cache.html
b/users/tools/connection-cache.html
index ff84f3730..003f95261 100644
--- a/users/tools/connection-cache.html
+++ b/users/tools/connection-cache.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/tools/connection-pool.html b/users/tools/connection-pool.html
index e25654208..146768bb1 100644
--- a/users/tools/connection-pool.html
+++ b/users/tools/connection-pool.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/tools/index.html b/users/tools/index.html
index 1bce5f136..364b65e15 100644
--- a/users/tools/index.html
+++ b/users/tools/index.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/tools/opm.html b/users/tools/opm.html
index f55efaae9..3543bfe30 100644
--- a/users/tools/opm.html
+++ b/users/tools/opm.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/tools/scraper.html b/users/tools/scraper.html
index 9884d0a15..d4840bf61 100644
--- a/users/tools/scraper.html
+++ b/users/tools/scraper.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/tools/testing.html b/users/tools/testing.html
index 00b237fd4..7ea423130 100644
--- a/users/tools/testing.html
+++ b/users/tools/testing.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/transports/can.html b/users/transports/can.html
index 969c8b03a..8f6c5b714 100644
--- a/users/transports/can.html
+++ b/users/transports/can.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/transports/index.html b/users/transports/index.html
index b2479e6fa..aa152cb99 100644
--- a/users/transports/index.html
+++ b/users/transports/index.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/transports/pcap-replay.html
b/users/transports/pcap-replay.html
index 0f4723827..db3c55166 100644
--- a/users/transports/pcap-replay.html
+++ b/users/transports/pcap-replay.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/transports/raw-socket.html b/users/transports/raw-socket.html
index 2275b1015..4a9589f26 100644
--- a/users/transports/raw-socket.html
+++ b/users/transports/raw-socket.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/transports/serial.html b/users/transports/serial.html
index f54a58137..3735d7058 100644
--- a/users/transports/serial.html
+++ b/users/transports/serial.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/transports/socketcan.html b/users/transports/socketcan.html
index bbf62187e..e37444abc 100644
--- a/users/transports/socketcan.html
+++ b/users/transports/socketcan.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/transports/tcp.html b/users/transports/tcp.html
index 923502c2a..891f3761a 100644
--- a/users/transports/tcp.html
+++ b/users/transports/tcp.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>
diff --git a/users/transports/udp.html b/users/transports/udp.html
index a99d1aab1..4b256166d 100644
--- a/users/transports/udp.html
+++ b/users/transports/udp.html
@@ -114,6 +114,9 @@
</li>
<li class="nav-item">
<a
href="../../users/getting-started/virtual-modbus.html" class="nav-link">Virtual
Modbus</a>
+ </li>
+ <li class="nav-item">
+ <a
href="../../users/getting-started/opcua-client-certificate.html"
class="nav-link">OPC UA Client Certificate</a>
</li>
</ul>
</li>