--- title: "Signing in with ACME" slug: "signing-in-with-acme" status: "new" updated: 2024-12-13T06:53:35Z published: 2024-12-13T06:53:35Z canonical: "docs.zpesystems.com/signing-in-with-acme" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.zpesystems.com/llms.txt > Use this file to discover all available pages before exploring further. # Signing in with ACME 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) 1. Log in to the Nodegrid web UI. 2. Navigate to *Security:: Certificates*. 3. Create a Certificate Signing Request (CSR). 4. Navigate to the recently created CSR. 5. Click **Sign with ACME**. 6. Enter the following fields. Some of the fields are auto-populated from the CSR. 1. CSR Name: Auto-populated from the CSR(read-only). 2. Certificate Name: Name of the certificate after signing in. 3. CA Server: The Certificate Authority server URL is used for the certificate validation. 4. Admin Email: Email address of the user to issue the certificate. 5. Interface: The network interface on Nodegrid that CA should reach to validate the certificate. 6. Port Number: The port number (on the specified interface) that CA should reach to validate the certificate. ![](https://cdn.document360.io/763c5fb1-b9af-4ccd-9ad6-cf28ae4cd5a3/Images/Documentation/acme1.png) > [!NOTE] > NOTE > > Users can enable the ACME Request Logs if needed (Recommended). 7. Click **Request Certificate**. The user is redirected to the Certificates Table with the new certificate generated. ![](https://cdn.document360.io/763c5fb1-b9af-4ccd-9ad6-cf28ae4cd5a3/Images/Documentation/acme2.png) #### Sign in with ACME (DNS-01) 1. Log in to the Nodegrid web UI. 2. Navigate to *Security :: Certificates*. 3. Create a Certificate Signing Request (CSR). 4. Navigate to the recently created CSR. 5. Click **Sign with ACME**. 6. Enter the following fields. Some of the fields are auto-populated from the CSR. 1. CSR Name: Auto-populated from the CSR(read-only). 2. Certificate Name: Name of the certificate after signing in. 3. CA Server: The Certificate Authority server URL is used for the certificate validation. 4. Admin Email: Email address of the user to issue the certificate. ![](https://cdn.document360.io/763c5fb1-b9af-4ccd-9ad6-cf28ae4cd5a3/Images/Documentation/dns-01-web.png) > [!NOTE] > NOTE > > Users can enable the ACME Request Logs if needed (Recommended). 7. Click on **Request TXT Record**. The page will reload with a new field named TXT Record. ![](https://cdn.document360.io/763c5fb1-b9af-4ccd-9ad6-cf28ae4cd5a3/Images/Documentation/dns-01-web2.png) User should use the given TXT Record and paste on the DNS provider so that DNS-01 request the certificate to the CA server. 8. 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. 9. If successful, you will be redirected to the Certificates Table with the new certificate generated. ### Using CLI #### acme_sign (HTTP-01) 1. Access /settings/certificates: ```plaintext [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)  -                                                                      -                         - ``` 2. Create a valid CSR (Certificate Signing Request). 3. Navigate to the recently created CSR. 4. Type acme_sign. ```plaintext [admin@nodegrid certificates]# cd acme-http [admin@nodegrid acme-http]# acme_sign ``` 5. Select the ACME Challenge type (default is HTTP-01) and acme_sign again. ```plaintext [admin@nodegrid {acme-http}]# show challenge_type = http-01 Set the ACME challenge type before proceeding with 'next' command. [admin@nodegrid {acme-http}]# next ``` 6. Enter all the fields (some are read from the CSR): 1. CSR Name: Auto-populated from the CSR(read-only). 2. Certificate Name: Name of the certificate after signing in. 3. CA Server: The Certificate Authority server URL used for the certificate validation. 4. Admin Email: Email address of the user to issue the certificate. 5. Interface: The network interface on Nodegrid that CA should reach to validate the certificate. 6. Port Number: The port number (on the specified interface) that CA should reach to validate the certificate. ```plaintext [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). ``` 7. Type request_certificate. ```plaintext [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) 1. Access /settings/certificates. ```plaintext [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)      -       ``` 2. Create a valid CSR (Certificate Signing Request). 3. Navigate to the recently created CSR. 4. Type acme_sign. ```plaintext [admin@nodegrid certificates]# cd acme-dns [admin@nodegrid acme-dns]# acme_sign ``` 5. Select the ACME Challenge type (default is HTTP-01) and acme_sign again. ```plaintext [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 ``` 6. Enter all the fields (some are read from the CSR): 1. CSR Name: Auto populated from the CSR(read-only). 2. Certificate Name: Name of the certificate after signing in. 3. CA Server: The Certificate Authority server URL used for the certificate validation. 4. Admin Email: Email address of the user to issue the certificate. ```plaintext [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). ``` 7. Type **r**equest_certificate. The page reloads with a new field named TXT Record. ```plaintext [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] > NOTE > > Copy and paste the TXT Record here on the DNS provider so that the DNS-01 requests the certificate to the CA server. > [!WARNING] > 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. 8. After copying and pasting the TXT Record, type **Request Certificate** again. The user is redirected to the Certificates Table with the new certificate generated. ```plaintext [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]# ```