UNPKG

node-red-contrib-trustpoint

Version:

Node-RED nodes for EST (Enrollment over Secure Transport) and certificate operations.

129 lines (108 loc) 4.8 kB
<script type="text/html" data-template-name="trustpoint-simpleenroll"> <div class="form-row"> <label for="node-input-name"><i class="fa fa-tag"></i> Name</label> <input type="text" id="node-input-name" placeholder="Node name"> </div> <div class="form-row"> <label for="node-input-estHost"><i class="fa fa-link"></i> EST Base URL</label> <input type="text" id="node-input-estHost" placeholder="https://localhost:8443/.well-known/est/simpleenroll"> </div> <div class="form-row"> <label for="node-input-useBasic"><i class="fa fa-lock"></i> Use Basic Auth</label> <input type="checkbox" id="node-input-useBasic" style="width:auto;"> </div> <div class="form-row"> <label for="node-input-username"><i class="fa fa-user"></i> Username</label> <input type="text" id="node-input-username" placeholder="Basic Auth username"> </div> <div class="form-row"> <label for="node-input-password"><i class="fa fa-key"></i> Password</label> <input type="password" id="node-input-password" placeholder="Basic Auth password"> </div> <div class="form-row"> <label for="node-input-useMtls"><i class="fa fa-certificate"></i> Use mTLS</label> <input type="checkbox" id="node-input-useMtls" style="width:auto;"> </div> <div class="form-row"> <label for="node-input-clientCert"><i class="fa fa-file"></i> Client Certificate</label> <input type="text" id="node-input-clientCert" placeholder="Path or msg.clientCert"> </div> <div class="form-row"> <label for="node-input-clientKey"><i class="fa fa-key"></i> Client Private Key</label> <input type="text" id="node-input-clientKey" placeholder="Path or msg.clientKey"> </div> <div class="form-row"> <label for="node-input-serverCert"><i class="fa fa-shield"></i> Server Certificate </label> <input type="text" id="node-input-serverCert" placeholder="Path or msg.serverCert"> </div> <div class="form-row"> <label for="node-input-rejectUnauthorized"> <input type="checkbox" id="node-input-rejectUnauthorized" style="width:auto;" checked> Reject self-signed certificates (recommended) </label> </div> <div id="enroll-preview" class="validation-result"> <div class="validation-box" id="enroll-preview-box"> This node sends a CSR to the EST server using SimpleEnroll. Provide <code>msg.payload</code> with a valid CSR (Buffer or PEM string). </div> </div> </script> <style> .validation-box { padding: 10px; border-radius: 5px; margin-top: 10px; font-weight: normal; } .validation-info { background-color: #4cafaf; color: white; } </style> <script type="text/javascript"> (function () { RED.nodes.registerType('trustpoint-simpleenroll', { category: 'Trustpoint', color: '#3e91f7', defaults: { name: { value: "" }, estHost: { value: "" }, useBasic: { value: false }, username: { value: "" }, password: { value: "" }, useMtls: { value: false }, clientCert: { value: "" }, clientKey: { value: "" }, serverCert: { value: "" }, serverKey: { value: "" }, rejectUnauthorized: { value: true } }, inputs: 1, outputs: 1, icon: "font-awesome/fa-exchange", label: function () { return this.name || "trustpoint-simpleenroll"; }, labelStyle: function () { return "fill: white; font-weight: bold;"; }, oneditprepare: function () { function toggleAuthFields() { const useBasic = $("#node-input-useBasic").is(":checked"); $("#node-input-username").prop("disabled", !useBasic); $("#node-input-password").prop("disabled", !useBasic); } function toggleMtlsFields() { const useMtls = $("#node-input-useMtls").is(":checked"); $("#node-input-clientCert").prop("disabled", !useMtls); $("#node-input-clientKey").prop("disabled", !useMtls); } $("#node-input-useBasic").on("change", toggleAuthFields); $("#node-input-useMtls").on("change", toggleMtlsFields); toggleAuthFields(); toggleMtlsFields(); $("#enroll-preview-box").addClass("validation-info"); } }); })(); </script>