This section outlines the steps for generating certificates using the ACME protocol in Nodegrid. The process includes creating a Certificate Signing Request (CSR), submitting it for signing through a Certificate Authority (CA), and handling the HTTP-01 and DNS-01 challenges.
Using Web UI:
Sign in with ACME (HTTP-01)
- Log in to the Nodegrid web UI. 
- Navigate to Security:: Certificates. 
- Create a Certificate Signing Request (CSR). 
- Navigate to the recently created CSR. 
- Click Sign with ACME. 
- Enter the following fields. Some of the fields are auto-populated from the CSR. - CSR Name: Auto-populated from the CSR(read-only). 
- Certificate Name: Name of the certificate after signing in. 
- CA Server: The Certificate Authority server URL is used for the certificate validation. 
- Admin Email: Email address of the user to issue the certificate. 
- Interface: The network interface on Nodegrid that CA should reach to validate the certificate. 
- Port Number: The port number (on the specified interface) that CA should reach to validate the certificate.  - NOTE - Users can enable the ACME Request Logs if needed (Recommended). 
 
- Click Request Certificate. The user is redirected to the Certificates Table with the new certificate generated.  - Sign in with ACME (DNS-01)
- Log in to the Nodegrid web UI. 
- Navigate to Security :: Certificates. 
- Create a Certificate Signing Request (CSR). 
- Navigate to the recently created CSR. 
- Click Sign with ACME. 
- Enter the following fields. Some of the fields are auto-populated from the CSR. - CSR Name: Auto-populated from the CSR(read-only). 
- Certificate Name: Name of the certificate after signing in. 
- CA Server: The Certificate Authority server URL is used for the certificate validation. 
- Admin Email: Email address of the user to issue the certificate.  - NOTE - Users can enable the ACME Request Logs if needed (Recommended). 
 
- Click on Request TXT Record. The page will reload with a new field named TXT Record.  
 User should use the given TXT Record and paste on the DNS provider so that DNS-01 request the certificate to the CA server.
- Once you paste the TXT Record and save it, click Request Certificate. The page reloads with a new field named TXT Record. Enabling the ACME Request Logs makes easier to understand on which process the ACME is running. 
- If successful, you will be redirected to the Certificates Table with the new certificate generated. 
Using CLI
acme_sign (HTTP-01)
- Access /settings/certificates: - [admin@nodegrid acme-http]# cd /settings/certificates [admin@nodegrid certificates]# show name common name status type issuer issued on expires on used by ==================== =========================== ====== ===================== ===================================================================== ======================== ======================== ========= nodegrid-default e41a2c00752c Valid Signed Certificate ZPE Systems Inc e41a2c00752c Nov 1 14:55:21 2024 GMT Feb 4 14:55:21 2027 GMT Webserver acme-http acme-http.example.com Valid Signing Request (CSR) - - -
- Create a valid CSR (Certificate Signing Request). 
- Navigate to the recently created CSR. 
- Type acme_sign. - [admin@nodegrid certificates]# cd acme-http [admin@nodegrid acme-http]# acme_sign
- Select the ACME Challenge type (default is HTTP-01) and acme_sign again. - [admin@nodegrid {acme-http}]# show challenge_type = http-01 Set the ACME challenge type before proceeding with 'next' command. [admin@nodegrid {acme-http}]# next
- Enter all the fields (some are read from the CSR): - CSR Name: Auto-populated from the CSR(read-only). 
- Certificate Name: Name of the certificate after signing in. 
- CA Server: The Certificate Authority server URL used for the certificate validation. 
- Admin Email: Email address of the user to issue the certificate. 
- Interface: The network interface on Nodegrid that CA should reach to validate the certificate. 
- Port Number: The port number (on the specified interface) that CA should reach to validate the certificate. - [admin@nodegrid {acme-http}]# set certificate_name=acme-http-certificate [admin@nodegrid {acme-http}]# show csr name: acme-http certificate_name = acme-http-certificate ca_server = https://acme-staging-v02.api.letsencrypt.org/directory admin_email = lucas.cunha@zpesystems.com challenge type: HTTP-01 interface = any port_number = 80 HTTP-01 challenge requires the webserver to listen HTTP on port specified and be reachable by the CA Server. DNS-01 challenge will require a validation of a TXT Record in your DNS Server. Click on Request TXT Record to get the TXT Record (takes up to 30 seconds).
 
- Type request_certificate. - [admin@nodegrid {acme-http}]# request_certificate [admin@nodegrid acme-http]# cd .. [admin@nodegrid certificates]# show name common name status type issuer issued on expires on used by ===================== =========================== ====== ========================= ===================================================================== ======================== ======================== ========= nodegrid-default e41a2c00752c Valid Signed Certificate ZPE Systems Inc e41a2c00752c Nov 1 14:55:21 2024 GMT Feb 4 14:55:21 2027 GMT Webserver acme-http-certificate acme-http.example.com Valid Signed Certificate (ACME) (STAGING) Let's Encrypt (STAGING) Counterfeit Cashew R10 Nov 6 16:01:53 2024 GMT Feb 4 16:01:52 2025 GMT - acme-http acme-http.example.com Valid Signing Request (CSR) - - - [admin@nodegrid certificates]# - - -
acme_sign (DNS-01)
- Access /settings/certificates. - [admin@nodegrid certificates]# cd /settings/certificates [admin@nodegrid certificates]# show name common name status type issuer issued on expires on used by ===================== =========================== ====== ========================= ===================================================================== ======================== ======================== ========= nodegrid-default e41a2c00752c Valid Signed Certificate ZPE Systems Inc e41a2c00752c Nov 1 14:55:21 2024 GMT Feb 4 14:55:21 2027 GMT Webserver acme-dns acme-dns.example.com Valid Signing Request (CSR) -
- Create a valid CSR (Certificate Signing Request). 
- Navigate to the recently created CSR. 
- Type acme_sign. - [admin@nodegrid certificates]# cd acme-dns [admin@nodegrid acme-dns]# acme_sign
- Select the ACME Challenge type (default is HTTP-01) and acme_sign again. - [admin@nodegrid {acme-dns}]# show challenge_type = http-01 Set the ACME challenge type before proceeding with 'next' command. [admin@nodegrid {acme-dns}]# set challenge_type=dns-01 [admin@nodegrid {acme-dns}]# next
- Enter all the fields (some are read from the CSR): - CSR Name: Auto populated from the CSR(read-only). 
- Certificate Name: Name of the certificate after signing in. 
- CA Server: The Certificate Authority server URL used for the certificate validation. 
- Admin Email: Email address of the user to issue the certificate. - [admin@nodegrid {acme-dns}]# set certificate_name=acme-dns-certificate [admin@nodegrid {acme-dns}]# show csr name: acme-dns certificate_name = acme-dns-certificate ca_server = https://acme-staging-v02.api.letsencrypt.org/directory admin_email = lucas.cunha@zpesystems.com challenge type: DNS-01 interface = any port_number = 80 HTTP-01 challenge requires the webserver to listen HTTP on port specified and be reachable by the CA Server. DNS-01 challenge will require a validation of a TXT Record in your DNS Server. Click on Request TXT Record to get the TXT Record (takes up to 30 seconds).
 
- Type request_certificate. The page reloads with a new field named TXT Record. - [admin@nodegrid {acme-dns}]# request_txt_record [admin@nodegrid {acme-dns}]# show csr name: acme-dns certificate name: acme-dns-certificate ca server: https://acme-staging-v02.api.letsencrypt.org/directory admin email: lucas.cunha@zpesystems.com challenge type: DNS-01 interface = any port_number = 80 txt record: _acme-challenge.acme-dns.example.com. 120 IN TXT "WBtpuD6iqqjXIpnHqX3yhg03QzWT66SiZ1F0zyAitmY" DNS-01 challenge requires you to add a TXT record to your DNS server. After adding the following record, click on Request Certificate (takes up to 120 seconds). request log: 2024/11/06 14:08:29 [INFO] [acme-dns.example.com] acme: Obtaining bundled SAN certificate given a CSR 2024/11/06 14:08:30 [INFO] [acme-dns.example.com] AuthURL: https://acme-staging-v02.api.letsencrypt.org/acme/authz-v3/14779174313 2024/11/06 14:08:30 [INFO] [acme-dns.example.com] acme: Could not find solver for: tls-alpn-01 2024/11/06 14:08:30 [INFO] [acme-dns.example.com] acme: Could not find solver for: http-01 2024/11/06 14:08:30 [INFO] [acme-dns.example.com] acme: use dns-01 solver 2024/11/06 14:08:30 [INFO] [acme-dns.example.com] acme: Preparing to solve DNS-01 lego: Please create the following TXT record in your example.com. zone: _acme-challenge.acme-dns.example.com. 120 IN TXT "WBtpuD6iqqjXIpnHqX3yhg03QzWT66SiZ1F0zyAitmY" lego: Press 'Enter' when you are done- NOTE - Copy and paste the TXT Record here on the DNS provider so that the DNS-01 requests the certificate to the CA server. - The ACME logs are activated by default in CLI. Users can however double check the ACME client logs and as well the same TXT record provided. 
- After copying and pasting the TXT Record, type Request Certificate again. The user is redirected to the Certificates Table with the new certificate generated. - [admin@nodegrid {acme-dns}]# request_certificate [admin@nodegrid acme-dns]# cd .. [admin@nodegrid certificates]# show name common name status type issuer issued on expires on used by ===================== =========================== ====== ========================= ===================================================================== ======================== ======================== ========= nodegrid-default e41a2c00752c Valid Signed Certificate ZPE Systems Inc e41a2c00752c Nov 1 14:55:21 2024 GMT Feb 4 14:55:21 2027 GMT Webserver acme-dns-certificate acme-dns.example.com Valid Signed Certificate (ACME) (STAGING) Let's Encrypt (STAGING) Counterfeit Cashew R10 Nov 6 16:16:44 2024 GMT Feb 4 16:16:43 2025 GMT - acme-dns acme-dns.example.com Valid Signing Request (CSR) - - - - [admin@nodegrid certificates]#